Ver código fonte

php2js begin

me@helium 8 anos atrás
pai
commit
7e297add2e
1 arquivos alterados com 92 adições e 0 exclusões
  1. 92 0
      php2js.md

+ 92 - 0
php2js.md

@@ -0,0 +1,92 @@
+# 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);
+```