Меню

Първи стъпки в правене на сайтове

Влез Излез

Първи стъпки в JavaScript

В четвъртия си видео урок от поредицата Първи стъпки в правене на сайтове намесих и JavaScript, което, като се замисля сега, не беше особено уместно, тъй като до тогава не бях казвал нищо за езика, а изведнъж дори го вкарах в приложение. Макар и в урока да се използват някои съвсем основни възможности, реших да направя един урок, където да ви запозная с някои основни особености на езика, а в бъдеще ще давам повече примери и приложение във видео уроци.

Нека започнем с това, че JavaScript, за разлика от HTML и CSS е програмен език. Всъщност, твърдението е малко спорно – някои хора казват, че JS всъщност е скриптов, но всъщност не програмен език. Това, което на вас ви трябва да знаете е, че езикът е динамичен.

Каква всъщност е разликата между програмен и скриптов език. За много хора въпросът е спорен, мнозина твърдят, че скриптовите езици всъщност са програмни езици. Ако питате мене – скриптовите езици са динамични, но не и програмни. Програмни са тези езици, които първо преминават през компилация, която води до генериране на машинен код, който да се изпълни от процесора на дадено устройство. Скриптовите езици не се компилират, а се интерпретират. Това означава, че друга програма, наречена интерпретатор, зарежда програмния им код и по подобен на компилиране начин генерира инструкции за процесора на по-ниско ниво. Скриптовите езици са по-бавни тъй като всеки път при изпълнението им те минават през интерпретация, а програмните езици минават през компилиране един единствен път, след което инструкциите се изпълняват директно от процесора. Това не е единствената причина скриптовите езици да са по-бавни, но тъй като и аз самият не съм особено добре запознат с този въпрос, предпочитам да не казвам нищо повече, което би могло да ви подведе.

Та, всъщност, ако следваме твърдението, че само езици, които се компилират, са програмни, то тогава JavaScript наистина не е програмен език. Въпреки всичко, с него се програмира, така че и да кажем обратното бихме имали известно право. Аз лично не си кривя душата, наричайки JavaScript по който и да било от двата начина, тъй като това всъщност е маловажно. Още повече, че конкретно JavaScript навлиза в най-различни практики, които го доближават до програмните езици. Вече има множество runtime-ове и решения, което позволяват създаване на native приложения с JavaScript. Нека уточним, че native приложения са тези, които вървят директно на операционната система. Най-старият пример, за който се сещам е Adobe Integrated Runtime (AIR), който позволява създаване на приложения с HTML,CSS и JavaScript, както и на приложения разработени с Flash. Преди около година, Adobe купиха и компания, която се занимава с аналогичен продукт, тясно насочен към мобилни устройства – PhoneGap. Освен тези, преди време по въпроса чух, че Microsoft ще добавят възможност за писане на Windows 8 widget-и на JavaScript. Съществуват и други приложения на езика, извън браузърите.

В уроците, които пиша, ще се съсредоточа обаче повече върху класическата употреба на JS, а именно скриптов език за сайтове.

За да стигнем обаче до особеностите на JavaScript относно различните браузъри, първо трябва да кажем няколко основни неща за самия език. JS е слабо (loosely) типизиран. Това означава, че въпреки, че езикът разграничава различните типове променливи, той не поставя стриктни изисквания за употребата им. В строго типизираните езици трябва да декларираме променливите, указвайки от какъв тип са, след което можем да им присвояваме само стойности от този тип. При слабо типизираните езици можем на една и съща променлива да зададем различен тип стойност.

Основните типовете стойности в JavaScript са булева, цяло число, низов литерал, масив, обект и функция (на английски – boolean, integer, string, array, object и function). Всичко освен първите три всъщност се свежда все до обект, но съществуват някои особености, затова ги представям отделно.

Променливите от булев тип (boolean) могат да имат само две стойности – вярно / грешно; true / false; 1 / 0.

Името на целочислените променливи (integer) е достатъчно самопоясняващо се. Могат да се използват както отрицателни, така и положителни числа. Съществуват и числа с плаваща запетая, които отново се свеждат до обекти. Все пак, JavaScript си има отделен тип number.

Низовите литерали (string) са просто текстови променливи.

Масивите са съвкупност от елементи (както първични – булеви, целочислени, низове – така и от други обекти). Масивите в JavaScript не са задължително вектори. Това означава, че не сме задължение елементите от един масив да бъдат от един и същ тип. Можем да имаме масив, в който първият елемент е число, вторият е обект, третият е низ, а четвъртият – функция.

Обектите се характеризират с двойки белег-стойност (property-value), където белегът се означава със string, а стойността може да бъде от всякакъв тип (първичен или друг обект).

Едно от характерните неща за JavaScript е, че функциите също са обекти. Начинът на работа на JavaScript е такъв, че функциите реално съдържат инструкции, които могат да се изпълнят при извикване на обекта. Това дава възможност и за лесно презаписване на функциите – просто задаваме като стойност на обекта други инструкции.

Тъй като още едва започваме, мисля да оставя за сега нещата така и скоро да напиша продължение към урока.

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax