Переменные в JavaScript. Типы данных JavaScript Типы данных и операторы javascript

JavaScript был создан программистом Brendan Eich из Netscape и представлен в декабре 1995 года под названием LiveScript. Довольно быстро он был переименован в JavaScript, хотя официальным названием JavaScript является ECMAScript. ECMAScript разрабатывается и поддерживается Международной организацией ECMA (Европейская ассоциация производителей компьютеров).

Что такое JavaScript?
1) JavaScript — язык сценариев, или скриптов. Скрипт представляет собой программный код — набор инструкций, который не требует предварительной обработки (например, компиляции) перед запуском. Код JavaScript интерпретируется движком браузера во время загрузки веб-страницы. Интерпретатор браузера выполняет построчный анализ, обработку и выполнение исходной программы или запроса.

2) JavaScript — объектно-ориентированный язык с прототипным наследованием. Он поддерживает несколько встроенных объектов, а также позволяет создавать или удалять свои собственные (пользовательские) объекты. Объекты могут наследовать свойства непосредственно друг от друга, образуя цепочку объект-прототип.

JavaScript на веб-страницах 1. Подключение сценариев к html-документу

Сценарии JavaScript бывают встроенные , т.е. их содержимое является частью документа, и внешние , хранящиеся в отдельном файле с расширением.js . Сценарии можно внедрить в html-документ следующими способами:

или тело страницы.

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

В виде обработчика события .
Каждый html-элемент имеет JavaScript-события, которые срабатывают в определенный момент. Нужно добавить необходимое событие в html-элемент как атрибут, а в качестве значения этого атрибута указать требуемую функцию. Функция, вызываемая в ответ на срабатывание события, является обработчиком события . В результате срабатывания события исполнится связанный с ним код. Этот способ применяется в основном для коротких сценариев, например, можно установить смену цвета фона при нажатии на кнопку:

var colorArray = ["#5A9C6E", "#A8BF5A", "#FAC46E", "#FAD5BB", "#F2FEFF"]; // создаем массив с цветами фона var i = 0; function changeColor(){ document.body.style.background = colorArray[i]; i++; if(i > colorArray.length - 1){ i = 0; } } Change background

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

Обычно код JavaScript размещается в заголовке документа (элемент ) или после открывающего тега . Если скрипт используется после загрузки страницы, например, код счетчика, то его лучше разместить в конце документа:

document.write("Введите свое имя");

2. Типы данных и переменные в JavaScript

Компьютеры обрабатывают информацию — данные. Данные могут быть представлены в различных формах или типах. Большая часть функциональности JavaScript реализуется за счет простого набора объектов и типов данных. Функциональные возможности, связанные со строками, числами и логикой, базируются на строковых, числовых и логических типах данных. Другая функциональная возможность, включающая регулярные выражения, даты и математические операции, осуществляется с помощью объектов RegExp, Date и Math.

Литералы в JavaScript представляют собой особый класс типа данных, фиксированные значения одного из трех типов данных — строкового, числового или логического:

"это строка" 3.14 true alert("Hellow"); // "Hellow" - это литерал var myVariable = 15; // 15 - это литерал

Примитивный тип данных является экземпляром определенного типа данных, таких как строковый, числовой, логический, null и undefined .

2.1. Переменные в JavaScript

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

Имя переменной, или идентификатор , может включать только буквы a-z , A-Z , цифры 0-9 (цифра не может быть первой в имени переменной), символ $ (может быть только первым символом в имени переменной или функции) и символ подчеркивания _ , наличие пробелов не допускается. Длина имени переменной не ограничена. Можно, но не рекомендуется записывать имена переменных буквами русского алфавита, для этого они должны быть записаны в Unicode.

В качестве имени переменной нельзя использовать ключевые слова JavaScript. Имена переменных в JavaScript чувствительные к регистру, что означает, что переменная var message; и var Message; — разные переменные.

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

Переменная инициализируется значением с помощью операции присваивания = , например, var message="Hellow"; , т.е. создается переменная message и в ней сохраняется ее первоначальное значение "Hellow" . Переменную можно объявлять без значения, в этом случае ей присваивается значение по умолчанию undefined . Значение переменной может изменяться во время исполнения скрипта. Разные переменные можно объявлять в одной строке, разделив их запятой:

Var message="Hellow", number_msg = 6, time_msg = 50;

2.2. Типы данных переменных

JavaScript является нетипизированным языком, тип данных для конкретной переменной при ее объявлении указывать не нужно. Тип данных переменной зависит от значений, которые она принимает. Тип переменной может изменяться в процессе совершения операций с данными (динамическое приведение типов ). Преобразование типов выполняется автоматически в зависимости от того, в каком контексте они используются. Например, в выражениях, включающих числовые и строковые значения с оператором + , JavaScript преобразует числовые значения в строковые:

Var message = 10 + " дней до отпуска"; // вернет "10 дней до отпуска"

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

Typeof 35; // вернет "number" typeof "text"; // вернет "string" typeof true; // вернет "boolean" typeof ; // вернет "object" typeof undefined; // вернет "undefined" typeof null; // вернет "object"

Все типы данных в JavaScript делятся на две группы — простые типы данных (primitive data types) и составные типы данных (composite data types) .

К простым типам данных относят строковый, числовой, логический, null и underfined .

2.2.1. Строковый тип (string)

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

Var money = ""; // пустая строка, ноль символов var work = "test"; var day = "Sunday"; var x = "150";

В строку в двойных кавычках можно включить одиночную кавычку и наоборот. Кавычка того же типа отключается с помощью символа обратного слэша \ (так называемая escape-последовательность ):

Document.writeln("\"Доброе утро, Иван Иваныч!\"\n"); // выведет на экран "Доброе утро, Иван Иваныч!"

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

2.2.2. Числовой тип (number)

Используется для числовых значений. Числа в языке JavaScript бывают двух типов: целые числа (integer) и числа с плавающей точкой (floating-point number) . Целочисленные величины могут быть положительными, например 1 , 2 , и отрицательными, например –1 , –2 , или равными нулю. 1 и 1.0 — одно и то же значение. Большинство чисел в JavaScript записываются в десятичной системе счисления, также может использоваться восьмеричная и шестнадцатеричная системы.

В десятичной системе значения числовых переменных задаются с использованием арабских цифр 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 .

В восьмеричном формате числа представляет собой последовательность, содержащая цифры от 0 до 7 и начинающаяся с префикса 0 .

Для шестнадцатеричного формата добавляется префикс 0x (0X), за которым следует последовательность из цифр от 0 до 9 или букв от a (A) до f (F), соответствующие значениям от 10 до 15 .

Var a = 120; // целое десятичное числовое значение var b = 012; // восьмеричный формат var c = 0xfff; // шестнадцатеричный формат var d = 0xACFE12; // шестнадцатеричный формат

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

Var a = 6.24; // вещественное число var b = 1.234E+2; // вещественное число, эквивалентно 1.234 Х 10² var c = 6.1e-2; // вещественное число, эквивалентно 6.1 Х 10‾²

2.2.3. Логический тип (boolean)

Данный тип имеет два значения, true (истина), false (ложь). Используется для сравнения и проверки условий.

Var answer = confirm("Вам понравилась эта статья?\n Нажмите ОК. Если нет, то нажмите Cancel."); if (answer == true) { alert("Спасибо!"); }

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

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

Составные типы данных состоят из более чем одного значения. К ним относятся объекты и особые типы объектов — массивы и функции. Объекты содержат свойства и методы, массивы представляют собой индексированный набор элементов, а функции состоят из коллекции инструкций.

2.3. Глобальные и локальные переменные

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

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

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

Глобальное пространство в JavaScript представляется глобальным объектом window . Добавление или изменение глобальных переменных автоматически обновляет глобальный объект. В свою очередь, обновление глобального объекта автоматически приводит к обновлению глобального пространства имен.

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

Локальные переменные, объявленные внутри функции в разных блоках кода, имеют одинаковые области видимости. Тем не менее, рекомендуется помещать объявления всех переменных в начале функции.

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

Динамическая типизация

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

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

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

Типы данных

Стандарт ECMAScript® определяет следующие типы данных:

  • Простые (их также называют примитивными) типы:
    • логический (англ. Boolean) - может принимать два возможных значения, иногда называемых истиной (true) и ложью (false);
    • нулевой (англ. Null) – значение null представляет ссылку, которая указывает, обычно намеренно, на несуществующий или некорректный объект или адрес;
    • неопределённый (англ. Undefined) – обозначает предопределенную глобальную переменную, инициализированную неопределенным значением;
    • числовой (англ. Number) – числовой тип данных в формате 64-битного числа двойной точности с плавающей запятой;
    • строковый (англ. String) – представляет собой последовательность символов, используемых для представления текста;
    • символ (англ. Symbol​) - тип данных, экземпляры которого уникальны и неизменяемы. (новый в ECMAScript 6).
  • Объектный (англ. Object) – это коллекция именованных значений, которые обычно называют свойствами (properties) объекта.
Разница между примитивными и составными типами

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

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

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

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

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

Примитивные типы

Все типы данных в JavaScript, кроме объектов, являются неизменяемыми или иммутабельными (англ. immutable). Это значит, что их значения не могут быть модифицированы, а только перезаписаны новым другим значением. Например, строки нельзя корректировать посимвольно – их можно переписать только полностью. Значения таких типов называются "примитивными".

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

Булевый (логический) тип «boolean»

Логические, или булевы значения (по фамилии их изобретателя - Буля), могут иметь лишь одно из двух значений: true (истина) или false (ложь). Значения true или false обычно появляются в операциях сравнения или логических операциях.

Приведенная ниже программа создает булеву переменную, а затем тестирует ее значение с использованием инструкции if/else:

В качестве сравнительного выражения можно использовать любое выражение. Любое выражение, которое возвращает значение 0, null, undefined или пустую строку, интерпретируется как false . Выражение, определяющее какое-либо другое значение, интерпретируется как true .

Примечание: При записи булевых значений их не заключают в кавычки: var myVar = true;
В то же время объявление var myVar = "true" создает строковую переменную.

Тип данных Number

В JavaScript, нет различия между целым числом и числом с плавающей точкой – по сути, JavaScript представляет все числа в качестве значения с плавающей точкой.

Для представления чисел в JavaScript используется 64-битный формат, определяемый стандартом IEEE-754 . Этот формат способен представлять числа в диапазоне от ±1,7976931348623157 × 10 308 до ±5 × 10 -324 .

Число, находящееся непосредственно в коде программы, называется числовым литералом. Помимо десятичных целых литералов JavaScript распознает шестнадцатеричные значения.
Числа в шестнадцатиричном формате могут включать любую последовательность цифр от 0 до 9 и буквы от a до f, которая обязательно начинается с последовательности символов «0x».

Var a = 255; var b = 0xFF; // Число 255 в шестнадцатеричной системе исчисления

Кроме того, JavaScript содержит специальные числовые значения:

  • NaN (не число или ошибка вычислений). Является результатом некорректной математической операции над недопустимыми данными, такими как строки или неопределенное значение.
  • Infinity (положительная бесконечность). Используется, если положительное число слишком велико и не может быть представлено в JavaScript.
  • -Infinity (отрицательная бесконечность). Используется, если отрицательное число слишком велико и не может быть представлено в JavaScript.
  • ±0 (положительный и отрицательный 0). JavaScript различает положительный и отрицательный ноль.
Тип данных String

Строковый тип (string) - это неизменяемая, упорядоченная последовательность 16-битных значений, каждое из которых представляет символ Unicode (буквы, цифры, знаки пунктуации, специальные символы и пробелы). Строки могут быть пустыми либо состоять из одного и более символов. Строки создаются при помощи двойных (") или одинарных (") кавычек. В строке, ограниченной парой одинарных кавычек, можно использовать двойные кавычки, и наоборот – одинарные кавычки можно использовать в строке, заключенной в пару двойных кавычек:

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

var firstName = "Max"; //синтаксическая ошибка - разные кавычки

Примечание: В JavaScript нет специального типа данных для одного символа, такого как char в C, C++ и Java. Одиночный символ представлен строкой единичной длины.

Тип данных Null Нулевой тип (null) содержит единственное специальное значение – null .

Ключевое слово null невозможно использовать в качестве имени функции или переменной. Значение null является ссылкой на «пустой» объект и имеет специальное назначение – обычно оно используется для инициализации переменной, которой впоследствии будет присвоено значение.

Оператор typeof для значения null возвращает строку «object», что свидетельствует о том, что значение null является специальным «пустым» объектом.

Тип данных Undefined

Неопределенный тип (undefined) образует свой собственный тип, который содержит единственное специальное значение – undefined . Такое значение имеет переменная, объявленная с помощью оператора var , но не инициализированная:

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

Следует отметить, что переменная со значением undefined отличается от переменной, которая вообще не определена:

В этом примере метод alert() выводит значение переменной age , то есть undefined . Во втором случае в метод alert() передается необъявленная переменная car , что приводит к ошибке.

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

В приведенном примере переменная age объявлена, но в неё ничего не записано, поэтому её значение как раз и есть undefined . Переменная car не объявлена – её, по сути, нет. Тем не менее, typeof возвращает строку undefined в обоих случаях. Некоторый смысл в этом, конечно, есть, потому что с любой из этих переменных невозможно выполнить никаких операций, хотя технически они совершенно разные.

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

Значение undefined является производным от null , так что в ЕСМА-262 оператор эквивалентности == считает их равными:

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

Чтобы отличать null и undefined в программе можно использовать оператор идентичности === :

Тип данных Символ (Symbol)

Символ (symbol) является нововведением JavaScript начиная с ECMAScript версии 6. Символ – это уникальное, неизменяемое, примитивное значение, которое служит для создания уникальных идентификаторов.

Чтобы создать символ нужно вызвать функцию Symbol:

var mySymbol = Symbol();

Для определения символа можно использовать оператор typeof , в случае если значения является символом будет возвращена строка symbol:

У функции Symbol есть необязательный параметр - строка, которая служит для описания символа:

Имя свойства является строкой, поэтому можно считать, что объекты связывают строки со значе­ниями. Вместе эти фрагменты информации образуют пары «ключ-значение».

В JavaScript объекты можно создавать одним из двух синтаксисов:

1. var obj = {}; // с помощью объектного литерала 2. var obj = new Object(); // с помощью метода, называемого конструктором

Создание объекта с помощью объектного литерала начинается с определения обыч­ной переменной. В правой части этой инструкции записывается литерал объекта – это заключенный в фигурные скобки {} список разделенных запятой пар "имя-значение" , заключенный в фигурные скобки. Имя свойства и значение отделены друг от друга двоеточием:

var cat = { "legs": 4, "name": "Мурзик", "color": "Рыжий" }

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

  • Когда мы присваиваем одну переменную (в значении которой ссылка на составное значение) другой переменной, то происходит копирование ссылки на составное значение. В результате обе переменные ссылаются на одно и то же составное значение и изменения в значении одной из переменных будут сказываться на другой переменной.
  • Любое выражение, которое возвращает значение 0, null, undefined или пустую строку, интерпретируется как false .
  • Строки создаются при помощи двойных (") или одинарных (") кавычек. В строке, ограниченной парой одинарных кавычек, можно использовать двойные кавычки, и наоборот – одинарные кавычки можно использовать в строке, заключенной в пару двойных кавычек.
  • Значение null является ссылкой на «пустой» объект и имеет специальное назначение – обычно оно используется для инициализации переменной, которой впоследствии будет присвоено значение.
  • Значение (undefined) имеет переменная, объявленная с помощью оператора var , но не инициализированная.
  • В JavaScript объекты можно создавать одним из двух способов:
    • с помощью объектного литерала
    • с помощью метода, называемого конструктором
  • Объект содержит неупорядочен­ную коллекцию свойств, каждое из которых содержит имя и значение. В объект можно в любой момент добавить новые именованные значения или удалить существующие.
  • Начнем, как обычно, с определения того, с чем мы знакомимся. Что же такое типы данных? Это понятие относится ко всем языкам программирования и JavaScript здесь не уникален. Если мы обратимся к определению в Википедии, то узнаем, что типы данных — это множество значений и операций на этих значениях. Говоря проще, тип данных это, по сути, тип значений, которые мы можем сохранить в переменную и работать с ними.

    В статье о переменных в JavaScript мы сравнили переменную с коробкой, в которую можно положить что угодно. Собственно, это что угодно и есть значение любого типа данных. Даже если вы не знакомы ни с одним языком программирования, интуитивно, думаю, вы уже сейчас сможете назвать как минимум два типа данных, которые есть в JavaScript. Правильно, это число и строка или строковый и числовой тип данных. Помните, мы записывали в переменную и строки, и числа? Разница лишь в том, что строку мы обязаны были заключить в кавычки.

    Итак, в JavaScript можно выделить шесть типов данных:

    JavaScript. Быстрый старт

    логическое или булево значение

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

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

    var name = "John", surname = "Doe";

    var name = "John" ,

    surname = "Doe" ;

    JavaScript. Быстрый старт

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

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

    var num1 = 2, num2 = 3.4 num3 = -5;

    var num1 = 2 ,

    num2 = 3.4

    num3 = - 5 ;

    Обратите внимание, дробная часть числа отделяется не запятой, а точкой (десятичная точка). Также число может быть со знаком: -5 в примере.

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

    Итак, логический тип или булев тип данных. У него всего два возможных значения: true и false. Если упростить, то их можно сравнить с словами «да» и «нет» или «истина» и «ложь». Пример записи булевых значений в JavaScript:

    var yes = true, no = false;

    var yes = true ,

    no = false ;

    Обратите внимание, значения true и false регистрозависимы. В PHP, к примеру, константы true и false не зависят от регистра.

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

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

    // запись объекта var user = { name: "John", surname: "Doe", year: 2016 }; // обращение к свойствам объекта alert(user.name); alert(user.surname); alert(user.year);

    Всего в JavaScript, существует 6 типов данных :
    — Число number ,
    — Строка string ,
    — Логический (булев) тип данных boolean ,
    — Отсутствие значения undefined ,
    — Пустота, ничто null ,
    — Объект object .

    Эти 6 типов данных, делятся на два вида, простые типы данных и составные (объектные) типы данных.

    Простые (примитивные) типы данных: number, string, boolean, undefined, null.
    Составные (объектные) типы данных: object

    Составным типом данных являются: объект, функция, массив (см. в конце статьи).

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

    Var имяПеременной; имяПеременной = значение; alert(typeof имяПеременной);

    Тип данных: number

    Number — тип данных число. Числа могут быть как целыми так и с плавающей запятой (дробные, вещественные, действительные числа).

    Var myNumber = 5; var myNumber2 = 5.5;

    В JavaScript в числах с плавающей запятой, используются точки, а не запятые 🙂

    Alert(typeof myNumber); alert(typeof myNumber2);

    В обоих случаях, скрипт выдаст нам сообщение number .

    Тип данных: string

    String — тип данных строка. Чтобы превратить значение переменной в строку, её нужно обрамить кавычками: дойными «строка» или одинарными ‘строка’. Если число обрамить кавычками, то её тип данных из number превратится в string:

    Var myString = "Привет я строка JavaScript"; var myString2 = "5";

    Проверяем с помощью оператора typeof, тип данных наших переменных:

    Alert(typeof myString); alert(typeof myString2);

    В обоих случаях скрипт выдаст нам сообщение string .

    Тип данных: boolean

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

    Var myBoolean = true; var myBoolean2 = false;

    Проверяем с помощью оператора typeof, тип данных наших переменных:

    Alert(typeof myBoolean); alert(typeof myBoolean2);

    В обоих случаях, скрипт выдаст нам сообщение boolean .

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

    Тип данных: undefined

    Undefined — тип данных который имеет всего одно значение undefined . Этот тип данных появляется тогда, когда переменная объявлена, но не инициализирована, т.е. когда у переменной (свойства объекта или элемента массива) отсутствует значение.

    // Объявили переменную, но не присвоили ей значения var myUndefined; // Проверяем с помощью оператора typeof, тип данных нашей переменной alert(typeof myUndefined);

    Функция alert() выдаст нам сообщение undefined .

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

    Var myUndefined2 = undefined; alert(typeof myUndefined2);

    Если значение undefined обрамить кавычками, то его тип данных из undefined превратится в string.

    Тип данных: object

    Object — тип данных объект.

    Var myObject; myObject = { svoistvo: "znachenie", svoistvo2: "znachenie2", };

    Проверяем с помощью оператора typeof, тип данных нашего объекта:

    Alert(typeof myObject);

    Скрипт выдаст нам сообщение object . Так же оператор typeof, покажет object у массивов и функций (см. ниже).

    Тип данных: null

    Null — это специальный тип данных обозначающий пустоту (ничего). Null — это специальный пустой объект. Например null может появиться при нажатии на кнопку отмена при использовании функции promt() .

    Var myNull = null; alert(typeof myNull);

    Данный скрипт выдаст сообщение object , почему так происходит читайте ниже.

    Если null обрамить кавычками, то его тип данных из null превратится в string.

    Уточнение по работе с оператором typeof

    Здесь сообщу о некоторых подводных камнях которые есть в операторе typeof, например при работе с null и с функциями он выдаёт не верный тип данных, что часто путает начинающих. Ниже я составил небольшую табличку, показывающую как работает

    String, Number, Boolean, Array, Object.

    Типы данных JavaScript

    Переменные JavaScript может содержать множество типов данных: numbers, strings, arrays, objects и многое другое:

    var length = 16; // Number
    var lastName = "Johnson"; // String
    var cars = ["Saab", "Volvo", "BMW"]; // Array
    var x = {firstName:"John", lastName:"Doe"}; // Object

    Концепция типов данных

    В программировании, типы данных является важным понятием.

    Для того, чтобы иметь возможность работать с переменными, важно знать, что-то о типе.

    Без типов данных, компьютер не может безопасно решить эту проблему:

    Var x = 16 + "Volvo";

    Имеет ли смысл добавить "Volvo" до шестнадцати? Будет ли выдавать ошибку или он будет производить результат?

    JavaScript будет рассматривать приведенный выше пример, как:

    Var x = "16" + "Volvo";

    При добавлении числа и строки, JavaScript будет рассматривать номер как строку.

    JavaScript вычисляет выражения слева направо. Различные последовательности могут привести к разным результатам:

    В первом примере, JavaScript обрабатывает 16 и 4 , как числа, до тех пор, пока не достигнет "Volvo" .

    Во втором примере, так как первый операнд является строкой, то все операнды обрабатываются как строки.

    JavaScript имеет динамические типы

    JavaScript имеет динамические типы. Это означает, что та же переменная может использоваться в качестве различных типов:

    пример

    var x; // Now x is undefined
    var x = 5; // Now x is a Number
    var x = "John"; // Now x is a String

    JavaScript Строки

    Строка (или текстовая строка) представляет собой серию символов, как "John Doe" .

    Строки написаны в кавычках. Вы можете использовать одинарные или двойные кавычки:

    пример

    var carName = "Volvo XC60"; // Using double quotes
    var carName = "Volvo XC60"; // Using single quotes

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

    пример

    var answer = "It"s alright"; // Single quote inside double quotes
    var answer = "He is called "Johnny""; // Single quotes inside double quotes
    var answer = "He is called "Johnny""; // Double quotes inside single quotes

    Попробуй сам "

    Вы узнаете больше о строках позже в этом руководстве.

    JavaScript Числа

    JavaScript имеет только один тип чисел.

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

    пример

    var x1 = 34.00; // Written with decimals
    var x2 = 34; // Written without decimals

    Очень большие или экстра маленькие числа могут быть написаны с научной (экспоненциальной) нотации:

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

    JavaScript Booleans

    Булев может иметь только два значения: истина или ложь.

    пример

    var x = true;
    var y = false;

    Booleans часто используются в условном тестировании.

    Вы узнаете больше об условном тестировании позже в этом руководстве.

    Массивы JavaScript

    массивы JavaScript записываются с помощью квадратных скобок.

    элементы массива разделяются запятыми.

    Следующий код объявляет (создает) массив называется автомобилей, содержащий три пункта (названия автомобиля):

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

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

    Объекты JavaScript

    Объекты JavaScript записываются в фигурные скобки.

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

    Объект (человек) в приведенном выше примере имеет 4 свойства: firstName, lastName, age и eyeColor .

    Вы узнаете больше об объектах позже в этом руководстве.

    TypeOf Оператор

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

    пример

    typeof "John" // Returns string
    typeof 3.14 // Returns number
    typeof false // Returns boolean
    typeof // Returns object
    typeof {name:"John", age:34} // Returns object