Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Что такое типы данных в JScript?




В Microsoft JScript используется шесть типов данных. Основные - числа, строки, объекты, логический. Остальные два - null(NULL) undefined(Неопределенный).

 

Строковый тип данных

 

Строки объявляются при помощи двойных кавычек или апострофов. Строки могут быть объектами JScript, но это - частный случай с особыми свойствами. Несколькопримеровстрок:

 

"The cow jumped over the moon."

'"Avast, ye lubbers!" roared the technician.'

"42"

 

Строка может состоять из нуля или более символов unicode. Когда количество символов равно нулю, это называется пустой строкой ("").

 

Числовой тип данных

 

JScript поддерживает числа как целые, так и с плавающей точкой(запятой). Целые могут быть положительные, 0(нуль) и отрицательными; a числа с плавающей точкой(запятой) представляются с десятичной точкой, либо в "e"-формате, означающим "10 в степени" в научном описании. Это соответствует IEEE 754 стандарту для представления чисел. Наконец, существуют специальные представления чисел:

· NaN, Not A Number илиНеЧисло

· Плюс-Бесконечность

· Минус-Бесконечность

· Положительный 0

· Отрицательный 0

Целые числа могут быть представлены по основанию 10 (decimal-десятичные), 8 (octal-восьмеричные) или 16 (hexadecimal-шестнадцатиричные).

Восьмеричные числа отображаются с первым символом "0", состоят из чисел от 0 до 7. Если число начинается с "0", но содержат числа "8" и(или) "9", оно является десятичным. Указание в восьмеричном числе символа "e" (или "E") является ошибкой.

Шестнадцатиричные ("hex", 16-ричные) числа начинаются с "0x" (или "0X") и содержат цифры от 0 до 9, буквы от A до F (или от a до f). Символ "e" считается шестнадцатиричной цифрой, и форма числа не является экспоненциальной. Буквы A-F используются как шестнадцатиричные цифры, означаются цифры от 10 до 15 по основанию 10. Так, 0xF означает 15, а 0x10 эквивалентно 16.

8- и 16- ричные числа могут быть отрицательными, но не дробными. Число, начинающееся с "0" и содержащее десятичную точку, является десятичным с плавающей точкой; Если число начинается с "0x" или "00" содержит десятичную точку, все символы, расположенные справа от нее игнорируются.

Примеры чисел:

.0001, 0.0001, 1e-4, 1.0e-4 // Четыре приведенных числа с плавающей точкой равны друг другу.

3.45e2 // Число с плавающей точкой - равно 345.

42 // Целое число.

0377 // Восьмиричное число, эквивалентно 255.

00.0001 // 8-ричное число не может содержать плавающую точку, эквивалентно 0.

0378 // 8-ричное число, равное 378.

0Xff // 16-ричное, эквивалентное 255.

0x37CF // 16-ричное, эквивалентное 14287.

0x3e7 // 16-ричное, эквивалентное 999. 0x3.

45e2 // 16-ричное число не может содержать дробную часть, эквивалентно 3.  

 

Логический или булев тип

Возможные значения типа - trueи false. Это - специальные значения, не равные соответственно 1 и 0.

Предупреждение. При сравнении, любое выражение, равное 0, считается ложным - false, а любое выражение, равное числу, отличным от 0 будет правдой(верным) - true. Следующее выражение возвращает true: (false == 0)

 

Undefined - тип не определен

Значение undefined имеет переменная после ее объявления и до присвоения ей какого-либо определенного значения.

 

Тип Null

Переменная типа null- не имеет никакого определенного значения.

 

Преобразование типов

Так как JScript - язык с нестрогим контролем типов, переменные в JScript не имеют строго фиксированного типа. Переменные имеют тип, эквивалентный типу значения, которое они содержат. Однако, в некоторых случаях, необходимо принудительное преобразование переменной в определенный тип. Числа могут быть объявлены как строки, а строки необходимо преобразовать в числовой тип. Для этого применяют конверсионные функции parseInt()и parseFloat().

 

var theFrom = 1;

var theTo = 10;

var doWhat = "Count from ";

doWhat += theFrom + " to " + theTo + ".";

 

После выполнения кода, переменная doWhat принимает значение "Count from 1 to 10." Числовой тип преобразовывается в строковый тип.

 

var nowWhat = 0;

nowWhat += 1 + "10"; // В этом случае, "10" является строкой, // "+=" - оператор конкатенации.

 

После исполнения кода, переменная nowWhat принимает значение "0110". Нижеследующее объясняет выполнение кода:

  1. Посмотрите на типы 1 и "10". "10" - строковый, а 1 - числовой, поэтому число было преобразовано в строку.
  2. Оператор +над строками, является оператором конкатенации. Результатом является "110".
  3. Посмотрите на типы по обе стороны оператора +=. nowWhat включает число, и "110" - строку, и поэтому число преобразуется в строку.
  4. В данный момент по обе стороны оператора += находятся строки, происходит конкатенация строк. Результатом является "0110".
  5. Результат хранится в переменной nowWhat .

var nowThen = 0;

nowThen += 1 + parseInt("10");

В данном случае, "+=" является оператором сложения. После выполнения кода, переменная nowThen принимает значение 11.

 

Операторы языка

В JScript применяются множество операторов: арифметические, логические, разрядные, присваивания и прочие.

 

Вычислительные

Логические

Разрядные

Присваивания

Прочие

Название Символ Название Символ Название Символ Название Символ Название Символ
Унарный минус - Логическое НЕ ! Разрядное НЕ ~ Присваивание = Удаление delete
Инкремент ++ Меньше < Поразрядный левый сдвиг << Составное присваивание OP= Тип typeof
Декремент -- Больше > Поразрядный правый сдвиг >>     Пусто void
Умножение * Меньше или равно <= Беззнаковый поразрядный правый сдвиг >>>        
Деление / Больше или равно >= Разрядное И &        
Деление по остатку % Равно == Разрядное ИСКЛЮЧАЮЩЕЕ ИЛИ ^        
Сложение + Не равно != Разрядное ИЛИ |        
Вычитание - Логическое И &&            
    Логическое ИЛИ ||            
    Условное выражение (Тринар) ?:            
    Запятая ,            
    Тождественно ===            
    Нетождественно !==            

 

Приоритет операторов

В JScript операторы выполняются в определенном порядке, называемом приоритет операций. Следующий список отражает приоритет операторов от высшего к низшему. Операторы, указанные в одной строке, выполняются слева направо.

 

Оператор Описание
. [] () Точка, индексы массивов, вызов функции
++ -- - ~ ! typeof new void delete Унарные операции, вывод типов данных, создание объектов, неопределенные значения
* / % Умножение, деление, деление по остатку
+ - + Сложение, вычитание, конкатенация строк
<<>>>>> Поразрядные сдвиги
<<= >>= Меньше, меньше или равно, больше, больше или равно
== != === !== Равно, неравно, тождественно, нетождественно
& Разрядное И
^ Разрядное ИСКЛЮЧАЮЩЕЕ ИЛИ
| Разрядное ИЛИ
&& Логическое И
|| Логическое ИЛИ
?: Условное выражение
= OP = Операторы присваивания
, Запятая

 

Круглые скобки используются, чтобы изменить порядок выполнения операторов. Выражение в круглых скобках полностью вычисляется прежде, и его значение используется как остаточный член инструкции.

Оператор с более высоким приоритетом выполняется ранее оператора с низким приоритетом. Например:

z = 78 * (96 + 3 + 45)

В данном выражении пять операторов: =, *, (), + и +. Приоритет операторов - следующий: (), *, +, +, =.

  1. Первым вычисляется значение выражения в круглых скобках: К сумме операции 96 и 3 прибавляется 45, общая сумма равна 144.
  2. Далее выполняется умножение: произведение 78 и 144 дает результат 11232.
  3. Переменной z присваивается значение 11232 .

 










Последнее изменение этой страницы: 2018-04-12; просмотров: 578.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...