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