JavaScript. Подробное руководство, 6-е издание, стр. 29
• В противном случае возбуждается исключение ТуреError.
Описанный алгоритм преобразования объекта в число объясняет, почему пустой массив преобразуется в число 0, а массив с единственным элементом может быть преобразован в обычное число. Массивы наследуют по умолчанию метод
<b>valueOf(),</b><b>toString().</b>Оператор + в языке JavaScript выполняет сложение чисел и конкатенацию строк. Если какой-либо из его операндов является объектом, JavaScript преобразует объект, используя специальное преобразование объекта в простое значение вместо преобразования объекта в число, используемого другими арифметическими операторами. То же относится и к оператору равенства
<b>==</b>Преобразование объектов в простые значения, используемое операторами
<b>+</b><b>==</b><b>Date</b><b>Date</b><b>valueOf()</b><b>Date</b><b>toString()</b><b>valueOf()</b><b>toString(),</b>Оператор
<b><</b><b>==</b><b>valueOf()</b><b>toString()</b><b>+, ==, !=</b><b>Date</b><b>-</b><b>+, -, ==</b><b>></b><b>Date</b><b>var now = new Date(); // Создать объект Date</b><b>typeof (now +1) // => "строка": + преобразует дату в строку</b><b>typeof (now - 1) // => "число": - выполнит преобразование объекта в число</b><b>now == now.toString() // => true: неявное и явное преобразование в строку </b><b>now > (now -1) // => true: > преобразует объект Date в число</b>3.9. Объявление переменных
Прежде чем использовать переменную в JavaScript, ее необходимо объявить. Переменные объявляются с помощью ключевого слова var следующим образом:
var і;
var sum;
Один раз использовав ключевое слово var, можно объявить несколько переменных:
var і, sum;
Объявление переменных можно совмещать с их инициализацией:
var message = "hello";
var i = 0, j = 0. k = 0;
Если начальное значение в инструкции var не задано, то переменная объявляется, но ее начальное значение остается неопределенным (
<b>undefined</b>Обратите внимание, что инструкция
<b>var</b><b>for</b><b>for/in</b><b>for(var і = 0; і < 10; i++) console.log(i);</b><b>for(var і = 0, j=10; і < 10; i++,J —) console.log(i*j);</b><b>for(var p in o) console.log(p);</b>Если вы имеете опыт использования языков программирования со статическими типами данных, таких как С или Java, то можете заметить, что в объявлениях переменных в языке JavaScript отсутствует объявление типа. Переменные в языке JavaScript могут хранить значения любых типов. Например, в JavaScript допускается присвоить некоторой переменной число, а затем этой же переменной присвоить строку:
<b>var і = 10;</b><b> і = "ten";</b>3.9.1 Повторные и опущенные объявления
С помощью инструкции var МОЖНО объявить одну и ту же переменную несколько раз. Если повторное объявление содержит инициализатор, то оно действует как обычная инструкция присваивания.
Если попытаться прочитать значение необъявленной переменной, JavaScript сгенерирует ошибку. В строгом режиме, предусмотренном стандартом ECMAScript 5 (раздел 5.7.3), ошибка также возбуждается при попытке присвоить значение необъявленной переменной. Однако исторически и при выполнении не в строгом режиме, если присвоить значение переменной, не объявленной с помощью инструкции
<b>var</b><b>var</b>