Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УП Технология программирования.doc
Скачиваний:
20
Добавлен:
11.06.2015
Размер:
1.69 Mб
Скачать

Типы значений в языкеJavaScript

Программы процедурных языков описывают действия над ячейками памяти машины. Ячейки хранят значения, представленные в двоичной форме, т.е. последовательностью битов (0 и 1). Номер ячейки называется её адресом. Машинная команда может рассматривать содержимое ячейки как число (целое или вещественное), текстовые символы, адрес другой ячейки, пиксел изображения, звуковую выборку и т.д., в зависимости от типа команды. Если требуется в машинной программе указать некоторое значение, нужно знать его двоичное представление.

В языках программирования высокого уровня можно оперировать с более сложными видами значений, занимающих в памяти машины не одну ячейку, а сложно организованные структуры ячеек. При этом в программе значения описываются не в двоичной, а в более привычной для людей символьной, литеральной форме. Типы значений и их литеральное представление в разных языках программирования могут различаться. Пользуясь каким-то языком, нужно строго следовать его правилам.

В языке JavaScript используются следующие типы значений:

  • Простые значения

      • целые числа,

      • вещественные числа,

      • логические значения,

      • строки,

      • специальные значения null, undefined, Infinity и NaN (так записываются их литералы, их же двоичное представление скрыто от пользователя-программиста).

    • Сложные объекты

      • массивы,

      • записи,

      • другие объекты.

В языке JavaScript простые значения и объекты имеют разное представление в памяти. Простые значения хранятся непосредственно в ячейке, указанной в программе. Для объектов в памяти автоматически создаётся дескриптор, хранящий некоторые характеристики объекта и само значение или адреса ячеек, хранящих его составных части. Адрес дескриптора называется ссылкой на объект. Если в программе указано, что значением ячейки является объект, это означает, что эта ячейка хранит ссылку на дескриптор объекта. Важно, что дескриптор после создания всегда имеет постоянный адрес в памяти.

Графически это представляется следующим образом (рис. 1). Ссылки изображаются стрелками с точкой.

Рис. 1. Способы представления значения в памяти: а) простого значения; б) объекта

Числовые литералы и значения и их организация в памяти Литералы целых чисел

Целые числа в языке JavaScript могут быть записаны в десятичной (10-й), восьмеричной (8-й) и шестнадцатеричной (16-й) системе. Литерал числа указывает и систему, и само число.

Во всех системах литерал числа может начинаться знаком + или – (т.е. знаком числа). Знак числа может и отсутствовать.

В 10-й системе после возможного знака идут десятичные цифры (0 – 9) этого числа, но если среди цифр нет 8 или 9, то 0 не может быть первой цифрой, т.е. первые нули в этом случае обязательно опускаются, чтобы не спутать его с восьмеричным числом.

В 8-й системе после возможного знака первой цифрой обязательно записывается 0, а потом идут восьмеричные цифры (0 – 7) числа.

В 16-й системе после возможного знака обязательно стоит цифра 0, а за ней латинская буква x или Х, а следом – любые шестнадцатеричные цифры числа (0 – 9, и A, B, C, D, E, F или a, b, c, d, e, f).

Например, десятичное число –16 в виде литерала может быть записано так:

-16 (10-й литерал), или

-020 (8-й литерал), или

-0x10 (16-й литерал).

Если же мы напишем -016, то это будет восьмеричное число, равное десятичному числу -14.

Все эти литералы внутри компьютера переводятся в двоичную форму числа, а на экран при печати выдаются в десятичной форме.