Пиши Дома Нужные Работы

Обратная связь

Специальные числовые литералы

1. NaN (Not a Number - не число) используется в качестве результата арифметических операций над строками и специальным значением undefined.

2. Infinity и -Infinity используются для значений чисел, выходящих за допустимый диапазон их изменения в JavaScript.

Строковый тип

Строковое значение - последовательность ноль или более символов Unicode, которая используется в программе для представления текстовых данных.

Строковые литералы

В JavaScript строковые литералы можно задавать двумя равноправными способами - последовательность символов, заключенная в двойные или одинарные кавычки:

"Анна"'АННА'

Один тип кавычек можно использовать в литерале, заданном другим типом кавычек:

"It's a string" // значение строки равно "" // пустая строка

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

Esc-последовательности Символ
\b Возврат на один символ
\f Переход на новую страницу
\n Переход на новую строку
\r Возврат каретки
\t Горизонтальная табуляция Ctrl-I
\' Апостроф
\" Двойные кавычки
\\ Обратная наклонная черта

 

ESC-последовательности форматирования "работают" при отображении информации в диалоговых окнах, отображаемых функциями alert(), prompt() и confirm(), а также если методом document.write() записывается содержимое элемента PPE.

Булевый тип

Имеет два значения - истина и ложь. Обычно значения этого типа используются в операторах принятия решения if и switch или в операторах цикла типа while.



Булевы литералы

Две лексемы true и false.

Числовые значения в булевом контексте также трактуются как истина или ложь:

· целый или вещественный нуль (0, 00, 0.0, 0e1), null и undefined трактуются как false;

· все остальные числовые значения рассматриваются как true.

Строковые значения в булевом контексте также трактуются как истина или ложь:

· пустая строка "" трактуются как false;

· все остальные строковые значения рассматриваются как true.

Специальные типы данных

Тип данных null имеет одно значение null. Когда переменная имеет значение null, то это означает, что она "пуста" - ей не присвоено никакого значения допустимого типа. Присваивание переменной значения null не уничтожает ее, но просто делает ее переменной, не содержащей значения любого допустимого типа данных: числового, строкового, булевого, объектного или массива. Значение null трактуется как 0 в арифметических операциях и false в логических, но оно не равняется 0 (как в С и С++).

Операция typeof для специального типа null возвращает Object (из-за совместимости с предыдущими версиями JavaScript).

Тип данных undefined имеет единственное значение undefined, которое присваивается переменной в двух случаях:

1. переменная объявлена, но ей еще не присвоено никакое значение;

2. при попытке обратиться к несуществующему свойству объекта.

В булевом контексте значение undefined трактуется как false, а в арифметическом как NaN. Нельзя сравнивать со значением undefined (такого просто не существует), но следует использовать операцию typeof, возвращающую тип undefined.

Переменные

Каждая переменная задается своим идентификатором - последовательностью буквенно-цифровых символов, начинающуюся с буквы (символ подчеркивания относится к букве):

Temp1MyFunction_my_Method

Определить переменную можно двумя способами:

· оператором var;

· оператором присваивания.

Оператор var используется как для задания, так и для инициализации переменной и может располагаться в любом месте сценария:

var имя_переменной [= начальное_значение];var weekDay = "Пятница";

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

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

Динамическое изменение типа переменной

По ходу выполнения сценария переменной могут присваиваться разные значения, меняя, таким образом, ее тип:

var weekDay // переменная определена, но не инициализирована // она имеет специальное значение undefined. . .weekDay = "Пятница"; // Строковый тип. . .weekDay = 5; // Целый тип

Определение типа переменной

Унарная операция typeof позволяет определить тип переменной, т. е. определить тип величины, хранящейся в данный момент в переменной. Синтаксис ее имеет вид:

typeof(переменная)typeof переменная

Эта операция возвращает одну из шести строк, соответствующих возможным типам данных JavaScript:

"number""string""boolean""undefined""object""function"
Упражнение 1.  
Написать сценарий, который при загрузке страницы HTML в браузер методом document.write() формирует на странице элемент PRE и его содержимое в виде трех строк текста, в которых слова отделены символами табуляции. Это действие реализовать в одном вызове метода document.write().

 

Упражнение 2.  
Написать сценарий, который после загрузки страницы отображает в диалоговом окне, создаваемом функцией alert(), три строки сообщения.

 

Упражнение 3.  
Проверить соответствие булеву значению false значений 0, 00, 0.0, oe1, null, undefined, +1,-1.1,"", "0", "undefined", "xxxx". Для этого создать переменные с указанными значениями и распечатать, например, функцией alert(), результат вычисления выражения !v, где v является идентификатором переменной с одним из указанных значений.

 

Упражнение 4.  
Написать сценарий, в котором одной и той же переменной присваиваются разные значение. После изменения значения переменной распечатать ее тип (результат выполнения операции typeof).

 

Выражения и операции

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

Переменные в выражениях должны быть инициализированы либо в операторе var, либо оператором присваивания. Если при вычислении выражения встречается неинициализированная или вообще не определенная переменная, то в Internet Explorer версий меньше 6.0 интерпретатор генерирует ошибку "undefined variable" ("переменная не определена"), указывая ее местоположение на странице HTML. В Internet Explorer 6.0 ситуация с использованием в выражении неинициализированной переменной была приведена к стандарту - такая переменная, а с ней и все арифметическое выражение принимает значение NaN, трактуемое в булевом контексте как false, а в строковых операциях как строка "NaN", но при использовании необъявленной переменной интерпретатор генерирует ошибку "определение отсутствует".

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

Кроме выражения присваивания в JavaScript определены еще три типа выражений:

· арифметическое - вычисляемым значением является число;

· строковое - вычисляемым значением является строка;

· логическое - вычисляемое значение равно true или false.

Арифметические операции

Операция Смысл
+ Сложение
- Вычитание
* Умножение
/ Деление (1/2=0.5)
% Остаток от деления чисел (12%5.1=1.5999999999999996)
++ Увеличение на 1 (префиксная и постфиксная)
-- Уменьшение на 1 (префиксная и постфиксная)

 

Пример:

speed = 5.5;time = 4;distance = speed * time;distance = (speed ++)*time;

Арифметические операции в выражении вычисляются слева направо с учетом общепринятого их математического старшинства. Скобками можно изменить порядок выполнения арифметических операций в выражении.

Логические выражения

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

Операции сравнения

Операция Синтаксис Описание
== a == b Истина, если оба операнда равны
=== a === b true, если значения операндов равны и сами операнды одного типа
!= a != b Не равно
!=== a !== b true, если значения операндов не равны и/или они не одного типа
>= a >= b Больше или равно
<= a <= b Меньше или равно
> a > b Строго больше
< a < b Строго меньше

 

Логические операции

Операция Синтаксис Описание
&& a && b логическое И; Возвращает a, если оно преобразуется к false, иначе b
|| a || b логическое ИЛИ; Возвращает a, если оно преобразуется к true, иначе b
! !a логическое НЕ; Если a равно true, возвращает false; если a равно false, возвращает true

 

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

false && операнд2 // всегда равно falsetrue || операнд2 // всегда равно true

Битовые логические операции

Операция Синтаксис Описание
И a & b Результирующий бит равен 1, если оба равны 1, иначе 0
ИЛИ a | b Результирующий бит равен 1, если хотя бы один бит равен 1
Исключающее ИЛИ a^b Результирующий бит равен 1, если хотя бы один бит равен 1, но не оба одновременно
Отрицание ~a Инвертирует биты
Смещение влево a<<n Сдвигает все биты влево на n позиций, добавляя справа нулевые
Смещение вправо a>>n Сдвигает все биты вправо на n позиций, используя значение знакового бита для заполнения "освобождаемых" слева битов
Смещение вправо с заполнением нулями a>>>n Сдвигает все биты вправо на n позиций, заполняя "освобождаемые" слева биты нулями

 

Строковые операции

Существует только одна строковая операция - операция конкатенации (соединения) строк +, если не считать сокращенной формы операции присваивания со сложением += и сравнения строк.

string = "Моя" + "строка"; // string равно "Моястрока"

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






ТОП 5 статей:
Экономическая сущность инвестиций - Экономическая сущность инвестиций – долгосрочные вложения экономических ресурсов сроком более 1 года для получения прибыли путем...
Тема: Федеральный закон от 26.07.2006 N 135-ФЗ - На основании изучения ФЗ № 135, дайте максимально короткое определение следующих понятий с указанием статей и пунктов закона...
Сущность, функции и виды управления в телекоммуникациях - Цели достигаются с помощью различных принципов, функций и методов социально-экономического менеджмента...
Схема построения базисных индексов - Индекс (лат. INDEX – указатель, показатель) - относительная величина, показывающая, во сколько раз уровень изучаемого явления...
Тема 11. Международное космическое право - Правовой режим космического пространства и небесных тел. Принципы деятельности государств по исследованию...



©2015- 2024 pdnr.ru Все права принадлежат авторам размещенных материалов.