# Javascript для PHP'истов Этот материал рассчитан на людей, которые уже знакомы с программированием на **PHP** и желают быстро разобраться с особенностями **Javascript**, без которого сейчас не обойдется ни один веб-программист. ## `use strict` Javascript-интерпретатор в браузере может работать в двух режимах: "обычном" и в "строгом": - **Обычный** режим предназначен для совместимости. - **Строгий** режим включает *современный* стандарт **Javascript** (ECMAScript 5 или новее) В зависимости от режима поведение интерпретатора может меняться. Далее это будет упоминаться в тех или иных моментах. По умолчанию интерпретатор работает в обычном режиме, для включение строгого режима используется *строка* `'use strict'` в начале **Javascript**-кода. ```javascript "use strict"; ``` или ```javascript 'use strict'; ``` ## Переменные и типы данных В отличие от **PHP**, **Perl** и **Shell**-интерпретаторов, с которых это и пошло, в **Javascript** переменные объявляются *без* знака `$`: ```javascript a = 5; ``` ```php $a = 5; ``` Такой код в обычном режиме **Javascript** декларирует *глобальную* переменную, которая становится полем объекта `window`, даже если переменная определена внутри функции: ```javascript a = 5; function b(){ a = 10; } b() alert(a); ``` Код выше аналогичен: ```php $a = 5; function b(){ global $a; $a = 10; } b(); echo($a); ``` Для декларации локальных переменных используется ключевое слово `var`. ```javascript a = 5; function b(){ var a = 10; } b() alert(a); ``` Код выше аналогичен: ```php $a = 5; function b(){ $a = 10; } b(); echo($a); ``` > В **строгом** режиме определение переменных без `var` недопустимо и вызывает ошибку: ```javascript 'use strict'; var a = 5; function b(){ var a = 10; } b() alert(a); ```