Типизация переменных
Самое важное различие между JavaScript и такими языками, как Java и C, состоит в том, что JavaScript – это нетипизированный (untyped) язык. В частности, это значит, что JavaScript-переменная может содержать значение любого типа, в отличие от Java- или C-переменной, в которой может содержаться только определенный тип данных, заданный при ее объявлении. Так, в JavaScript можно присвоить переменной число, а затем присвоить той же переменной строку:
i = 10;
i = "десять";
В отличие от многих других языков программирования, при инициализации переменной не нужно описывать ее тип. Переменная может иметь значения различных типов и неоднократно их изменять.
var x = "Иван“;
х = "Анна";
х = 2.5;
Одно ключевое слово var можно использовать для инициализации сразу нескольких переменных, как с оператором присвоения, так и без него. При этом переменные и выражения с операторами присвоения разделяются запятыми, например:
var name = "Вася", address, x = 3.14
Если начальное значение не задано в инструкции var, то переменная объявляется, но ее начальное значение остается неопределенным (undefined), пока не будет изменено программой.
Обратите внимание, что инструкция var также может включаться в циклы for и for/in (о которых рассказывается ниже), что позволяет объявлять переменную цикла непосредственно в самом цикле. Например:
for(var i = 0; i < 10; i++) document.write(i, "<br>");
for(var i = 0, j = 10; i < 10; i++, j__) document.write(i*j, "<br>");
for(var i in o) document.write(i, "<br>");
Переменные, объявленные с помощью инструкции var, называются долговременными (permanent): попытка удалить их с помощью оператора delete приведет к ошибке.
С помощью инструкции var можно объявить одну и ту же переменную несколько раз. Если повторное объявление содержит инициализатор, то оно действует как обычная инструкция присваивания.
Если попытаться прочитать значение необъявленной переменной, JavaScript сгенерирует сообщение об ошибке. Если присвоить значение переменной, необъявленной с помощью инструкции var, JavaScript неявно объявит эту переменную за вас. Однако переменные, объявленные таким образом, всегда создаются как глобальные, даже если они работают только в теле функции.
Чтобы не создавать глобальную переменную (или не использовать существующую), когда достаточно локальной переменной для отдельной функции, всегда помещайте инструкцию var в тело функции. Лучше всего объявлять с ключевым словом var все переменные – и глобальные, и локальные.
Дата добавления: 2015-08-01; просмотров: 542;