Вход/Регистрация
JavaScript. Подробное руководство, 6-е издание
вернуться

Флэнаган Дэвид

Шрифт:

Оператор + в языке JavaScript выполняет сложение чисел и конкатенацию строк. Если какой-либо из его операндов является объектом, JavaScript преобразует объект, используя специальное преобразование объекта в простое значение вместо преобразования объекта в число, используемого другими арифметическими операторами. То же относится и к оператору равенства

==
. Если выполняется сравнение объекта с простым значением, оператор выполнит преобразование объекта с использованием правил преобразования в простое значение.

Преобразование объектов в простые значения, используемое операторами

+
и
==
, предусматривает особый подход для объектов
Date
. Класс
Date
является единственным типом данных в базовом JavaScript, который определяет осмысленные преобразования и в строку, и в число. Преобразование любого объекта, не являющегося датой, в простое значение основано на преобразовании в число (когда первым применяется метод
valueOf
), тогда как для объектов типа
Date
используется преобразование в строку (первым применяется метод
toString
). Однако преобразование выполняется не совсем так, как было описано выше: простое значение, возвращаемое методом
valueOf
или
toString,
используется непосредственно, без дополнительного преобразования в число или в строку.

Оператор

<
и другие операторы отношений выполняют преобразование объектов в простые значения подобно оператору
==
, но не выделяя объекты Date: для любого объекта сначала предпринимается попытка применить метод
valueOf
, а затем метод
toString
. Любое простое значение, полученное таким способом, используется непосредственно, без дальнейшего преобразования в число или в строку.

+, ==, !=
и операторы отношений являются единственными, выполняющими специальное преобразование строки в простое значение. Другие операторы выполняют более явные преобразования в заданный тип и не предусматривают специальной обработки объектов
Date
. Оператор
–
, например, преобразует свои операнды в числа. Следующий фрагмент демонстрирует поведение операторов
+, -, ==
и
>
при работе с объектами
Date
:

var now = new Date; // Создать объект Date

typeof (now +1) // => "строка": + преобразует дату в строку

typeof (now - 1) // => "число": - выполнит преобразование объекта в число

now == now.toString // => true: неявное и явное преобразование в строку

now > (now -1) // => true: > преобразует объект Date в число

3.9. Объявление переменных

Прежде чем использовать переменную в JavaScript, ее необходимо объявить. Переменные объявляются с помощью ключевого слова var следующим образом:

var і;

var sum;

Один раз использовав ключевое слово var, можно объявить несколько переменных:

var і, sum;

Объявление переменных можно совмещать с их инициализацией:

var message = "hello";

var i = 0, j = 0. k = 0;

Если начальное значение в инструкции var не задано, то переменная объявляется, но ее начальное значение остается неопределенным (

undefined
), пока не будет изменено программой.

Обратите внимание, что инструкция

var
также может включаться в циклы
for
и
for/in
(о которых рассказывается в главе 5), что позволяет объявлять переменную цикла непосредственно в самом цикле. Например:

for(var і = 0; і < 10; i++) console.log(i);

for(var і = 0, j=10; і < 10; i++,J —) console.log(i*j);

for(var p in o) console.log(p);

Если вы имеете опыт использования языков программирования со статическими типами данных, таких как С или Java, то можете заметить, что в объявлениях переменных в языке JavaScript отсутствует объявление типа. Переменные в языке JavaScript могут хранить значения любых типов. Например, в JavaScript допускается присвоить некоторой переменной число, а затем этой же переменной присвоить строку:

  • Читать дальше
  • 1
  • ...
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: