me@helium преди 8 години
родител
ревизия
e247e97e66
променени са 1 файла, в които са добавени 83 реда и са изтрити 3 реда
  1. 83 3
      php2js.md

+ 83 - 3
php2js.md

@@ -24,6 +24,8 @@ Javascript-интерпретатор в браузере может работ
 
 ```
 
+
+
 ## Переменные и типы данных
 
 В отличие от **PHP**, **Perl** и **Shell**-интерпретаторов, с которых это и пошло, в **Javascript** переменные объявляются *без* знака `$`:
@@ -65,7 +67,7 @@ a = 5;
 function b(){
     var a = 10;
 }
-b()
+b();
 alert(a);
 ```
 Код выше аналогичен:
@@ -83,10 +85,88 @@ echo($a);
 ```javascript
 'use strict';
 
-var a = 5;
+var a = 5; //без var тут бы была ошибка
 function b(){
     var a = 10;
 }
-b()
+b();
 alert(a);
 ```
+
+**Во избежание ошибок ВСЕГДА определяйте переменные через `var`**.
+
+### Типы данных 
+
+Основные типы данных в **JS** совпадают с типами данных **PHP**, за некоторыми исключениями:
+
+- Целые и дробные числа представлены едиными типом `Number`
+- Под "массивом" в **JS** подразумевается массив с целочисленными ключами.
+- Ассоциативные массивы и объекты - это одно и то же;
+- Для переменных без значения и значений отсутствующих ключей в ассоциативных массивах вместо PHP `NULL` используется аналогичный тип `undefined`
+- Так же существует тип `null`, который применяется программистами для задания "пустых" значений и/или в **DOM**.
+
+## `;`
+
+В отличие от **PHP** и многих других языков с **C**-подобным синтаксисом, в **JS** точка с запятой *не является обязательной*, однако нужна
+в некоторых случаях, например при написании операторов в одну строку:
+
+```javascript
+var a = 5
+var b = 6
+var c = "string"
+var d
+
+a ++; b += a; d = c + a;
+```
+
+**Во избежание ошибок просто добавляйте `;` "как обычно", в конце строки**
+
+## Комментарии
+Как в PHP.
+
+## Строки, переменные в них и конкатенация
+
+В отличие от **PHP**, в **JS** нет разницы между одинарными и двойными кавычками:
+
+```javascript
+var a = "\n";
+var b = '\n';
+
+alert(a == b);
+```
+
+```php
+$a = "\n";
+$b = '\n';
+
+echo (a == b);
+```
+
+В отличие от **PHP**, в **JS** нет подстановки переменных в строках в двойных кавычках:
+
+```javascript
+var a = "\n";
+
+alert("Тут нет a переноса a строк");
+```
+
+```php
+$a = "\n";
+
+echo ("Тут есть $a перенос $a строки");
+```
+
+Таким образом, для добавления значения переменной в строку надо использовать **конкатенацию**
+В отличие от **PHP**, в **JS** конкатенация делается с помощью оператора `+`, а не `.`:
+
+```javascript
+var a = '\n';
+
+alert("Тут есть " + a + "перенос " + a + "строки");
+```
+
+```php
+$a = "\n";
+
+echo ("Тут есть".$a."перенос ".$a. "строки");
+```