Объекты javascript имеют тип данных. Типы данных. Тип данных Number

Для создания имён переменных в JavaScript установлены правила синтаксиса:

  • Для имён переменных используются символы: a-z, A-Z, цифры, символ $, символ знак подчёркивания (_).
  • Имя переменной не может начинаться с цифры.
  • JavaScript чувствителен к регистру, об этом нужно помнить при программировании. itcounter и itC ounter - это разные переменные.
  • В JavaScript нет ограничений на длину имени переменной.

Примеры правильных имён переменных:

  • itcounter
  • $_itcounter
  • it_counter

Ошибочные имена переменных:

  • 9room
  • it-counter
  • #itcounter
  • &itcounter

Переменные объявляются командой var .

В переменных можно хранить строки и числа. На самом деле можно хранить и другие типы данных, но о них поговорим позже.

Строковые переменные

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

Var $stroka_1 = "Привет!"; var $stroka_2 = "Осторожно!";

В строку, созданную одинарной кавычкой, можно включить двойную кавычку и наоборот.

Var $stroka_1 = ""Привет!" - это приветствие."; var $stroka_2 = ""Осторожно!" - это предупреждение."; document.write($stroka_1); document.write("

Чтобы вывести кавычку того же типа, её нужно экранировать символом обратного слэша. Всё просто:


"); document.write($stroka_2);

Значения переменных можно присваивать другим переменным:

Var $stroka_1 = "\"Привет!\" - это приветствие."; var $stroka_2 = "\"Осторожно!\" - это предупреждение."; document.write($stroka_1); document.write("
"); document.write($stroka_2); $stroka_2 = $stroka_1; document.write("
"); document.write($stroka_2);

В этом примере мы сначала в переменную $stroka_2 присвоили одно строковое значение, но потом присвоили ей значение переменной $stroka_1.

Объединение строк

Очень часто нужно объединить несколько строк в одну. Например, наш последний пример слишком громоздкий.

Объединение (конкатенация) строк в JavaScript осуществляется с помощью знака + .

Для вывода на экран 2 строковых переменных разделённых тегом
переменных можно использовать одну команду document.write() .

Var $stroka_1 = ""Привет!" - это приветствие."; var $stroka_2 = ""Осторожно!" - это предупреждение."; document.write($stroka_1 + "
" + $stroka_2);

Оператор конкатенации + также можно использовать в переменных:

Var $stroka_1 = ""Привет!" - это приветствие."; var $stroka_2 = ""Осторожно!" - это предупреждение."; var $stroka_3 = $stroka_1 + "
" + $stroka_2; document.write($stroka_3);

Числовые переменные

Чтобы создать числовую переменную нужно просто присвоить ей числовое значение.

Var $count_1 = 23; var $count_2 = 10.34; document.write($count_1 - $count_2);

Теперь другой пример:

Var $count_1 = 23; // Числовая переменная. var $stroka_1 = "57"; // Строковая переменная. document.write($stroka_1 + $count_1);

Видите, значение переменной $stroka_1 взято в кавычки, значит это текстовая переменная. Потом мы складываем текстовую и числовую переменную и получаем строку "5723", так работает JavaScript в таких случаях - превращает число в строку и добавляет к суммируемой строке.

Булевы переменные

Есть такой тип переменных - булевы. Всё просто, тут только два значения: истина и ложь, то есть true (истина) и false (ложь).

Этот тип данных используется в операциях сравнения. Вот простые примеры:

  • 9 > 1 - это истина.
  • 2 > 5 - это ложь.
var $count = 2

Теперь попробуем подставить булевы значения в арифметические действия. Суммируем две операции сравнения:

Var $count = (3 > 2) + (4 > 2); document.write($count);

Эта странная запись, я знаю. Но переменная $count будет равна 2. В математическом контексе значение true = 1, а значение false = 0.

Операции сравнения используются в часто применяемой инструкции if в JavaScript. Слово if по английски значит - если.

Var $count = 100; if ($count == 100) document.write("Переменная $count равна 100.");

В данном примере сообщение будет выведено на экран, так как условие инструкции if ($count == 100) равно истине (true). Если изменить значение переменной $count на 99, то условие ($count == 100) станет равно false (ложь) и на экран ничего не выведется.

Простые типы переменных

В JavaScript переменные классифицируются на несколько типов. Строковой, числовой и булевый (логический) типы мы уже рассмотрели. Вот более широкий список простых типов:

  • string - строковая переменная.
  • number - числовая переменная.
  • boolean - булева переменная.
  • null - специальное значение «ничто».
  • undefined - тип «значение не присвоено».

Значение переменной null образует свой отдельный тип null, состоящий из единствено возможного значения null. null - это специальное значение, которое имеет смысл «ничего» или «значение неизвестно».

Var $price = null; // это значит что цена не известна.

В JavaScript можно узнать тип переменных при помощи инструкции typeof .

Var $count; document.write(typeof $count + "
"); var $count = true; document.write(typeof $count + "
"); var $count = "true"; document.write(typeof $count + "
"); var $count = 100; document.write(typeof $count + "
"); var $count = null; document.write(typeof $count + "
");

Синтаксис инструкции typeof может быть таким:

  • typeof $count
  • typeof($count)

Итак, запустите код из последнего примера и посмотрите на результат. Тип переменной null будет object. Этот ошибка в языке, и она, вероятно, никогда не будет исправлена из-за необходимости сохранения совместимости уже написаных JavaScript сценариев с новыми версиями языка.

Тип object - это уже не примитивный тип, о нём мы будем говорить в других уроках.

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

В JavaScript типы данных можно разделить на две категории: простые (их также называют примитивными ) типы и составные (их также называют ссылочными или объекты ).

  • string - текстовые строки (обычно их называют просто - строки)
  • number - числа
  • boolean - логические (булевы) значения

Так же к простым типам относятся два специальных значения:

  • null
  • undefined

К составным типам данных относятся:

  • function - функции
  • array - массивы
  • object - объекты

Разница между простыми и составными типами

Разница между простыми и составными типами проявляется при копировании значений.

Когда переменной (параметру функции, свойству или элементу массива) присваивается значение простого типа, например число, то в переменную записывается само значение (в данном случае - число). При выполнении присваивания одной переменной (со значением простого типа) другой переменной происходит копирование значения. В результате каждая переменная имеет свою копию значения и изменения в одной из переменных никак не сказывается на значении другой:

Var num1 = 10; var num2 = num1; // Копируем значение alert("num1: " + num1 + // 10 "\nnum2: " + num2); // 10 num1 = 15; // Изменяем значение alert("num1: " + num1 + // 15 "\nnum2: " + num2); // 10

Когда переменной (параметру функции, свойству или элементу массива) присваивается значение составного типа, например объект, то в переменную записывается ссылка на значение (в данном случае - ссылка на объект). При выполнении присваивания одной переменной (в значении которой ссылка на составное значение) другой переменной происходит копирование ссылки на составное значение. В результате обе переменные ссылаются на одно и то же составное значение и любые внесённые изменения в значении одной из переменных будут сказываться на другой переменной:

Var o1 = {x:10}; var o2 = o1; // Копируем ссылку на объект alert("o1.x: " + o1.x + // 10 "\no2.x: " + o2.x); // 10 o2.x = 15; // Изменяем значение alert("o1.x: " + o1.x + // 15 "\no2.x: " + o2.x); // 15

null и undefined

Тип null имеет всего одно значение - null . Значение null является ссылкой на пустой объект и имеет специальное назначение - обычно оно используется для инициализации переменной, которой впоследствии будет присвоен объект.

Тип undefined имеет всего одно значение - undefined . Значение undefined указывает на изначальное отсутствие какого-либо значения. Получить значение undefined можно следующим образом:

  • При обращении к переменной, которая была объявлена, но не была инициализирована.
  • При обращении к несуществующему свойству объекта.
  • При обращении к несуществующему элементу массива.
  • При обращении к параметрам функции, которые не были инициализированы аргументами при вызове функции.
  • Возвращается функциями, которые не имеют возвращаемого значения.
  • Возвращается оператором typeof, если операндом является несуществующая переменная.
var bar; document.write(bar); Попробовать »

Идентификатор undefined является именем предопределённой глобальной переменной, которая инициализирована значением undefined . Переменная undefined доступна только для чтения.

Объекты обёртки

Каждый раз, когда в программе предпринимается попытка обратиться к свойству или методу значения примитивного типа, интерпретатор временно преобразует примитивное значение в объект соответствующего типа. Временные объекты, в которые преобразуются значения примитивного типа, называют объектами обёртками . Эти объекты используются интерпретатором для доступа к нужному свойству или методу. Сразу после обращения к свойству или методу объект обёртка уничтожается. Объекты обёртки создаются только для значений типа number , string и boolean . Значения null и undefined не имеют объектов оберток: любые попытки обратиться к свойствам этих значений будут вызывать ошибку.

Если для объекта обёртки попытаться установить новое свойство то, новое свойство не будет сохранено, так как объект обёртка уничтожается сразу после того, как выполнит свою работу:

Var str = "текст"; str.len = 5; // Установить свойство со значением. Сразу после этого объект уничтожается alert(str.len); // undefined, так как предыдущий объект обёртка уже уничтожен

Объекты обёртки можно рассматривать просто как реализацию удобства для работы со значениями примитивного типа и вообще не думать о них.

Они делятся на встроенные и пользовательские (определяемые программистом).

Литералы - данные, непосредственно используемые в программе. Литералы могут быть разных типов.

  • Числовые литералы: 10 2.310 2.3е+2
  • Строковый литерал: "Строковый" "Строковый"

Литералы используются в операциях присваивания:

Присваивание выполняется справа налево:

Экранирование кавычек в тексте знаком "/"".

Переменные

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

Тип переменной определяется по её значению. JavaScript является гибко типизированным языком в разных частях программы одна и та же переменная может иметь значения разных типов.

Для определения типа переменой существует оператор typeof() ;

Области видимости

Объявление с var вне функции делает переменную глобальной.

Объявление var внутри функции делает переменную локальной.

Конфликт локальных и глобальных переменных

Будет выдано 7, так как в блоке вывода фигурирует глобальная переменная.

Примечание, при объявлении можно var не писать.

Отсутвие var в функции, делает переменную конструктора.

Нестандартный пример с неожиданным выводом

Будет выведено 5, так как вызов f(3) изменил значение переменной k.

Массивы

Массивы делятся на встроенные, называемые коллекциями, и пользовательские.

Для определения пользовательского используется конструктор Array.

Элементы нумеруются с 0. Не могут быть многомерными. Но может быть массив массивов.

Методы по работе с массивами

Метод join() объединяет элементы массива в строку.

Обратный метод split() рабивает сроку на элементы массива по разделителю.

Полученный массив

Меняем значения у 0 и 1 элементов массива:

Склеим получившиеся значения:

Метод reverse()

Метод reverse() применяется для изменения порядка элементов массива на противоположный. Инициализируем массив: Упорядочим его в обратном порядке, вызвав метод reverse(), тогда новый массив будет содержать:

Метод sort()

Метод sort() интерпретирует элементы массива как строковые литералы и сортируем массив в алфавитном (лексикографическом) порядке. Метод sort() меняет массив. В предыдущем примере, применив a.sort, получим: Если необходимо отсортировать числа, в функцию sort() добавляется необязательный аргумент, являющийся именем функции, удовлетворяющей следующим требованиям:
  • у нее должно быть два аргумента
  • она должна возвращать число
  • если первый аргумент функции должен считаться меньшим (большим, равным), чем второй аргумент, то функция должна возвратить отрицательное (положительное, ноль) значение

Функция имеет вид:

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

Для примера создадим массив \(b = new Array(10,6,300,25,18)\) и сравним результаты сортировки без аргумента и с функцией compar в качестве аргумента: \(Алфавитный порядок:)\) \(10, 18, 25, 300, 6)\) \(Числовой порядок:)\) \(6, 10, 18, 25, 300)\) Метод sort() понимает элементы массива как строки, но не преобразует их в строки.

Операторы

  • {...}
  • if ... else ...
  • while
  • break
  • continue
  • return

{...}

Фигурные скобки определяют составной оператор - блок.

Назначение - определение тела цикла, тело условного оператора или функции.

if ... else ...

Условный оператор применяется для ветвления программы по логическому условию. Есть два варианта синтаксиса:

Пример использования:

()?

Этот оператор называется условным выражением, выдает одно из двух значений в зависимости от выполнения некоторого условия. Синтаксис: Является альтернативой if...else... . Следующие примеры равносильны:

while

Оператор while задает цикл. Определяется следующим образом: Формально, цикл while работает следующим образом:
  • выполняем тело_цикла;
  • переходим к п.1.
  • Такой цикл используется, когда заранее неизвестно количество итераций, например, в ожидании некоторого события. Пример:

    for

    Оператор for - оператор цикла. Он имеет вид: Цикл работает следующим образом:
    1. выполняется инициализация_переменных_цикла;
    2. проверяется условие_продолжения цикла:
    • если оно ложно (false), цикл закончен,
    • если же оно истинно (true), продолжаем далее
  • выполняем тело_цикла;
  • выполняется модификация_переменных_цикла
  • переходим к п.1.
  • Пример использования: Math - втроенный объект, предоставляющий многочисленные математические константы и функции, а Math.pow(n,m) вычисляет степенную функцию \(n^{m}\).

    break

    Оператор break позволяет дострочно покинуть тело цикла. Изменим пример с кубами чисел, распечатаем только кубы, не превышающие 5000. Несмотря на то,что переменную n мы заставили пробегать от 1 до 100, т.е. заведомо с запасом, реально же цикл выполнится для значений от 1 до k, где k - номер последней итерации в данном случае.

    continiue

    Оператор continue позволяет перейти к следующей итерации цикла, пропустив выполнение всех нижестоящих операторов в теле цикла.Если нам нужно вывести кубы чисел от 1 до 100, превышающие 10 000, то мы можем составить такой цикл:

    return

    Оператор return используют для возврата значения из функции или обработчика события. Оператор return не только указывает, какое значение должна вернуть функция, но и прекращает выполнение дальнейших операторов в теле функции. При использовании в обработчиках событий оператор return позволяет отменить или не отменять действие по умолчанию, которое совершает браузер при возникновении данного события. Отменить его, однако, можно не для всех событий. В этом примере без оператора return false пользователь увидел бы окно предупреждения "Не отправим!" и далее был бы перенаправлен на страницу newpage.html. Оператор же return false позволяет отменить отправку формы, и пользователь лишь увидит окно предупреждения. Аналогично, чтобы отменить действие по умолчанию для параметров событий onClick, onKeyDown, onKeyPress, onMouseDown, onMouseUp, onSubmit, onReset, нужно использовать return false. Для события onMouseOver с этой же целью нужно использовать оператор return true. Для некоторых же событий, например onMouseOut, onLoad, onUnload, отменить действие по умолчанию невозможно.

    Урок №3
    Типы данных в языке JavaScript

    В прошлом уроке мы выяснили, что переменная — это именованная область памяти, которая хранит в себе какие-либо данные (значения).

    У каждого значения в JavaScript, имеется свой тип данных . Всего в JavaScript существует 6 типов данных, в этом уроке по JavaScript, мы рассмотрим 4 типа данных:
    — числовой тип данных number ,
    — строковый тип данных string ,
    — логический тип данных boolean ,
    — неопределённый тип данных undefined .

    Остальные два изучим чуть позже:
    объектный тип данных object
    — пустой тип данных null

    Оператор typeof

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

    Alert(typeof имяПеременной);

    После этого скрипт должен выдать какое-либо сообщение: number , string , boolean , undefined , object .

    Тип данных: число (number)

    Когда переменной, в качестве значения, присваивается какое-либо число (без кавычек) , её тип данных становится number

    Var myNumber; myNumber = 5; alert(typeof myNumber);

    В первой строке мы создали переменную с именем myNumber , во второй строке, присвоили переменной значение 5 , в третьей с помощью оператора typeof вычислили тип данных у переменной myNumber , а функция alert() показала нам результат этих вычислений.

    В итоге, данный скрипт выведет нам сообщение number . Если число обрамить кавычками (одинарными "5" или двойными "5" ) , то оно превратится в строку string .

    Тип данных: строка (string)

    Когда переменной в качестве значения присваивается какое-либо значение, заключённое в двойные " " или одинарные кавычки " " , то её тип данных становится string .

    Var myString; myString = "Привет, я строка JavaScript!"; alert(typeof myString);

    В первой строке мы создали переменную с именем myString , во второй строке, присвоили переменной значение "Привет, я строка JavaScript!" , в третьей с помощью оператора typeof вычислили тип данных у переменной myString , а функция alert() показала нам результат этих вычислений. В итоге, данный скрипт должен вывести нам сообщение string .

    Тип данных: логический тип данных (boolean)

    Когда переменной в качестве значения присваивается true или false , без кавычек , то её тип данных становится boolean .

    Тип данных boolean — это логический тип данных, он имеет всего два значения: true (правда) или false (ложь) .

    Var myBoolean; myBoolean = true; alert(typeof myBoolean);

    В первой строке мы создали переменную с именем myBoolean , во второй строке, присвоили переменной значение true , в третьей с помощью оператора typeof вычислили тип данных у переменной myBoolean , а функция alert() показала нам результат этих вычислений. В итоге, данный скрипт должен вывести нам сообщение boolean .

    Логический тип данных, мы изучим более подробно в следующих уроках, посвящённых операциям сравнения, логическим операциям и оператору ветвления if

    Тип данных: undefined

    Тип данных undefined появляется тогда, когда переменная объявлена, но не инициализирована, т.е. переменная создана, но значения ей не присвоили.

    Var myUndefined; alert(typeof myUndefined);

    В первой строке мы создали переменную с именем myUndefined , во второй строке с помощью оператора typeof вычислили тип данных у переменной myUndefined , а функция alert() показала нам результат этих вычислений. В итоге, данный скрипт должен вывести нам сообщение undefined .

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

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

    // объявляем переменные var myString; var myNumber; // инициализируем переменные myString = "Привет, МИР!"; myNumber = 5; // обращаемся к переменным alert(myString); alert(myNumber);

    В первой и второй строках кода мы создали переменные myString и myNumber , в третьей и четвёртой строках присвоили переменным значения "Привет, МИР!" и 5 , в пятой и шестой строках с помощью функции alert() вывели результаты Привет, МИР! и 5

    Переменная – это именованный участок памяти, в который можно как сохранить некоторую информацию, так и получить её из неё.

    Объявление (создание) переменных осуществляется с помощью ключевого слова var .

    // message - имя переменной var message;

    При создании переменной ей сразу же можно присвоить значение.

    Присвоение переменной значения осуществляется с помощью оператора «=».

    // например, создадим переменную email и присвоим ей строку "[email protected]" var email = "[email protected]"; // установим переменной email новое значение email = "[email protected]";

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

    // например, выведем в консоль браузера значение переменной email: console.log(email);

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

    Var price = 78.55, quantity = 10, message;

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

    Var output = "успех"; // переменная имеет строковый тип данных output = 28; // эта же переменная, но уже имеющая тип данных «число» output = true; // эта же переменная, но уже хранящая булевское значение

    Значение переменной можно изменять неограниченное количество раз.

    // создана переменная age var age; // переменной age присвоено значения 67 age = 67; // переменной age установлено значение «Пенсионный возраст» age = "Пенсионный возраст"; // переменной age установлено число 55 age = 55;

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

    Имя переменной можно составлять из букв, цифр и символов $ и _. При этом первый символ переменной не должен быть цифрой. Кроме этого в качестве имени переменной нельзя использовать зарезервированные слова.

    // создание двух переменных, первая переменная имеет имя phone, вторая - meassage; var phone, message;

    Регистр букв в имени переменной имеет значение. Т.е., например, переменная phone и Phone - это две разные переменные.

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

    Price = 250.00; // создали переменную и инициализировали её числом 250.00 percent = "20%"; // создали переменную и инициализировали её строкой «20%»

    Но создавать, таким образом, переменные не рекомендуется.

    Типы данных

    В JavaScript типы данных можно разделить на примитивные и объектные.

    Переменные, содержащие примитивные типы данных хранят значение явно.

    В JavaScript выделяют 5 примитивных типов данных:

    • число (number);
    • строка (string);
    • булевый тип (boolean);
    • null;
    • undefined.

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

    Var x = 77, y = x; x = 55; y; // 77

    Переменные, содержащие объект, на самом деле хранят не сам объект, а ссылку на него.

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

    // пример 1 (с типом данных «объект») var coord1 = {x: 77, y: 100}, coord2 = coord1; coord1.x = 55; // установим свойству x объекта новое значение coord2.x; // 55, т.к. coord1 и coord2 содержат ссылку на один и тот же объект // пример 2 (с типом данных «массив») var coord1 = , coord2 = coord1; coord1 = 55; // установим элементу с 0 индексом новое значение coord2; // 55, т.к. coord1 и coord2 содержат ссылку на один и тот же объект // пример 3 (с типом данных «дата») var date1 = new Date(2018,00,01), date2 = date1; date2 = date2.setDate(date2.getDate()+7); // увеличим дату на 7 дней date1; // 07.01.2018, т.к. date1 и date2 содержат ссылку на один и тот же объект

    Число (number)

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

    Var int = 5; // целое число var float = 5.98; // дробное число

    Формат представления чисел в JavaScript осуществляется в соответствии со стандартом IEEE 754-2008.

    Целые числа в JavaScript можно задавать не только в десятичной системе счисления, но и в восьмеричной (0) или шестнадцатеричной системе счисления (0x) с использованием префиксов, указанных в круглых скобках:

    Var int = 010; // 8 int = 055; // 45 int = 0xFF; //255 int = 0xB8; // 184

    Записывать числа возможно в экспоненциальной форме :

    Var num = 2e3; // экспоненциальная запись числа 2*10^3 (2000) num = 2e-3; // экспоненциальная запись числа 2*10^-3 (0,002) num = 3.2e3; // 3200 num = 1.5e-2; // 0.015

    Числовой тип данных кроме чисел содержит ещё специальные числовые значения :

    • Infinity (положительная бесконечность);
    • -Infinity (отрицательная бесконечность);
    • NaN (Not a Number – не число).

    Специальное значения Infinity означает очень большое положительное число, т.е. число, которое не может быть представлено в JavaScript по причине того, что оно слишком велико.

    Специальные значения -Infinity означает наоборот очень большое отрицательное число, т.е. число, которое не может быть представлено JavaScript по причине того, что оно тоже слишком велико.

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

    5/0; // Infinity -5/0; // -Infinity Math.pow(10,399); // Infinity (10 в степене 399) Math.pow(10,399); // -Infinity (-10 в степене 399)

    Значение NaN возвращается в результате выполнения математических операций, которые JavaScript не может вычислить.

    5 - "Hi"; // NaN (от числа 5 отнять строку) 1000 / "20px"; // NaN (число поделить на строку) true * "1rem"; // NaN (логическое значение true умножить на строку)

    При этом очень интересным является то, что значение NaN в JavaScript не равно ничему включая себя.

    NaN == NaN; // false NaN === NaN; //false

    Логический тип данных (Boolean)

    Boolean – примитивный тип данных, который имеет всего два значения: true (истина) и false (ложь).

    Var a = true; var b = false;

    Строка (String)

    Строка (String) – это тип данных, который используется в JavaScript для представления текста.

    Строка JavaScript может состоять из 0 или большего количества символов.

    В качестве формата строки в JavaScript всегда использутся кодировка Unicode.

    Создание строки (литерала строки) выполняется посредством заключения текста в одинарные или двойные кавычки .

    "JavaScript"; "ECMAScript";

    В JavaScript нет разницы между одинарными и двойными кавычками.

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

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

    ""ECMAScript""; // без экранирования (с использованием одинарных кавычек) "\"ECMAScript\""; // с экранированием

    Строка в JavaScript может содержать специальные символы. Например, \n (перевод строки), \t (табуляция), \r (возврат каретки) и др.

    "Это предложение.\nА это тоже предложение, но оно будет начинаться с новой линии.";

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

    "Я люблю " + "JavaScript"; // Я люблю JavaScript

    Значение "undefined"

    undefined - специальный примитивный тип данных, который имеет одно значение, равное undefined .

    Этот тип данных имеет объявленная переменная, которой ещё не присвоено значение.

    Var num; // undefined

    Значение undefined также будет возвращено при обращении к несуществующему свойству объекта.

    Var obj = {}; // пустой объект obj.prop; // undefined

    Значение "null"

    null - специальный примитивный тип данных, который имеет одно значение, равное null .

    null - это просто специальное значение, которое имеет смысл «ничего» или «неизвестное значение», т.е. оно явно ничего не означает.

    Объект (Object)

    Объект – это структура данных, состоящая из пар имя-значение.

    Создание объекта с помощью нотации литерала объекта осуществляется следующим образом:

    { имя_1: значение_1, имя_2: значение_2, имя_3: значение_3, ... }

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

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

    Другими словами, объект - это структура данных, состоящая из свойств и методов.

    Var person = { name: "Виталий", age: 27, getAge: function () { return "Возраст: " + this.age; } }

    Обращение к свойствам объекта выполняется через точку или посредством скобочной записи.

    // выведем значение свойства age в консоль браузера // 1 способ (через точку) console.log(person.age); // 2 способ (с помощью скобок) console.log(person["age"]); // вызовем метод getAge; значение, которое он вернет, выведем в консоль console.log(person.getAge());

    Оператор typeof

    Оператор typeof используется для получения информации о типе данных выражения в виде строки.

    Синтаксис оператора typeof (вариант без круглых скобок):

    Typeof выражение

    Синтаксис оператора typeof (с использованием круглых скобок):

    Typeof(выражение)

    Var name, age = 37, email = "[email protected]", isLicense = true, interest: null, lastExperience: { period: "June 2011 - June 2018", place: "ISACA, Moscow", position: "Web designer" }, getExperience: function() { return lastExperience.period + " ("+ lastExperience.position + " - " + lastExperience.place + ")"; }; typeof name; // "undefined" typeof age; // "number" typeof isLicense; // "boolean" typeof interest; // "object" (1) typeof lastExperience; // "object" typeof getExperience; // "function" (2) /* (1) - это ошибка, которая присутствует в языке, начиная с его первой реализации; она не была исправлена в целях сохранения совместимости и это необходимо учитывать, при написании сценариев; null - это примитивный тип данных, он не является объектом */ /* (2) - это очень удобно, что оператор typeof выделяет функции отдельно; но функция в JavaScipt - это тоже объект; в этом легко убедиться если выполнить следующую конструкцию: */ typeof getExperience.__proto__.__proto__ // "object" (прототипом функции является объект)

    Константы

    С выходом ECMAScript 6 появилось возможность создавать константы. Осуществляется это с помощью ключевого слова const.

    Const COLOR_RED = "#ff0000";

    Константа – это переменная, значение которой защищено от изменения. Т.е. при попытке поменять значение будет брошена ошибка.

    Const COLOR_RED = "#ff0000"; COLOR_RED = "#f44336"; // Uncaught TypeError: Assignment to constant variable.

    Если, например, константа содержит объект, то он не может быть изменен, а точнее ссылка на него. Но свойства этого объекта могут быть изменены.

    Const COLORS = { red: "#ff0000", green: "#00ff00", blue: "#00ff00" } COLORS = ["#ff0000","#00ff00","#00ff00"]; // Uncaught TypeError: Assignment to constant variable. COLORS.green = "#4caf50";