ЛУЧШИЙ САЙТ ДЛЯ РАЗРАБОТЧИКОВ
×

JavaScript учебник

JS HOME JS Introduction JS Where To JS Output JS Statements JS Syntax JS Comments JS Variables JS Operators JS Arithmetic JS Assignment JS Data Types JS Functions JS Objects JS Scope JS Events JS Strings JS String Methods JS Numbers JS Number Methods JS Arrays JS Array Methods JS Array Sort JS Array Iteration JS Dates JS Date Formats JS Date Get Methods JS Date Set Methods JS Math JS Random JS Booleans JS Comparisons JS Conditions JS Switch JS Loop For JS Loop While JS Break JS Type Conversion JS Bitwise JS RegExp JS Errors JS Debugging JS Hoisting JS Strict Mode JS this Keyword JS Style Guide JS Best Practices JS Mistakes JS Performance JS Reserved Words JS Versions JS Version ES5 JS Version ES6 JS JSON

JS Forms

JS Forms Forms API

JS Objects

Object Definitions Object Properties Object Methods Object Constructors Object Prototypes

JS Functions

Function Definitions Function Parameters Function Invocation Function Call Function Apply Function Closures

JS HTML DOM

DOM Intro DOM Methods DOM Document DOM Elements DOM HTML DOM CSS DOM Animations DOM Events DOM Event Listener DOM Navigation DOM Nodes DOM Collections DOM Node Lists

JS Browser BOM

JS Window JS Screen JS Location JS History JS Navigator JS Popup Alert JS Timing JS Cookies

JS AJAX

AJAX Intro AJAX XMLHttp AJAX Request AJAX Response AJAX XML File AJAX PHP AJAX ASP AJAX Database AJAX Applications

JS JSON

JSON Intro JSON Syntax JSON vs XML JSON Data Types JSON Objects JSON Arrays JSON Parse JSON Stringify JSON PHP JSON HTML JSON JSONP

JS References

JavaScript Objects HTML DOM Objects


JavaScript Типы данных


Типы данных JavaScript

Переменные JavaScript могут содержать множество типов данных: числа, строки, объекты и многое другое:

var length = 16;                               // Number
var lastName = "Johnson";                      // String
var x = {firstName:"John", lastName:"Doe"};    // Object

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

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

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

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

var x = 16 + "Volvo";

Есть ли смысл добавить "Вольво" в шестнадцать? Приведет ли это к ошибке или приведет к получению результата?

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

var x = "16" + "Volvo";

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

Пример

var x = 16 + "Volvo";

Пример

var x = "Volvo" + 16;

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

JavaScript:

var x = 16 + 4 + "Volvo";

Результат:

20Volvo

JavaScript:

var x = "Volvo" + 16 + 4;

Результат:

Volvo164

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

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



Типы JavaScript являются динамическими.

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

Пример

var x;           // Now x is undefined
x = 5;           // Now x is a Number
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

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

Пример

var y = 123e5;      // 12300000
var z = 123e-5;     // 0.00123

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


Булевы JavaScript

Логическое значение может иметь только два значения: true или false.

Пример

var x = 5;
var y = 5;
var z = 6;
(x == y)       // Returns true
(x == z)       // Returns false

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

Подробнее об условном тестировании вы узнаете далее в этом учебнике.


Массивы JavaScript

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

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

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

Пример

var cars = ["Saab", "Volvo", "BMW"];

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

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


Объекты JavaScript

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

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

Пример

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

Объект (Person) в приведенном выше примере имеет 4 свойства: имя, фамилия, возраст и эйеколор.

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


Оператор typeof

Для поиска типа переменной JavaScript можно использовать оператор JavaScript typeof.

Оператор typeof Возвращает тип переменной или выражения:

Пример

typeof ""                  // Returns "string"
typeof "John"              // Returns "string"
typeof "John Doe"          // Returns "string"

Пример

typeof 0                   // Returns "number"
typeof 314                 // Returns "number"
typeof 3.14                // Returns "number"
typeof (3)                 // Returns "number"
typeof (3 + 4)             // Returns "number"

Неопределенный

В JavaScript переменная без значения имеет значение undefined. Typeof также не определен.

Пример

var car;                // Value is undefined, type is undefined

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

Пример

car = undefined;        // Value is undefined, type is undefined

Пустые значения

Пустое значение не имеет ничего общего с undefined.

Пустая строка имеет как юридическое значение, так и тип.

Пример

var car = "";              // The value is "", the typeof is "string"

Null

В JavaScript null является "Nothing". Это должно быть что-то, чего не существует.

К сожалению, в JavaScript тип данных null является объектом.

Вы можете считать это ошибкой в JavaScript, typeof null является объектом. Он должен иметь значение null.

Можно очистить объект, задав ему значение NULL:

Пример

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = null;        // Now value is null, but type is still an object

Можно также очистить объект, задав для него значение undefined:

Пример

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = undefined;   // Now both value and type is undefined

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

Undefined и NULL равны в значении, но различаются по типу:

typeof undefined           // undefined
typeof null                // object

null === undefined         // false
null == undefined          // true

Примитивные данные

Примитивное значение данных — это одно простое значение данных без дополнительных свойств и методов.

Оператор typeof может возвращать один из следующих примитивных типов:

  • string
  • number
  • boolean
  • undefined

Пример

typeof "John"              // Returns "string"
typeof 3.14                // Returns "number"
typeof true                // Returns "boolean"
typeof false               // Returns "boolean"
typeof x                   // Returns "undefined" (if x has no value)

Сложные данные

Оператор typeof может возвращать один из двух сложных типов:

  • function
  • object

Оператор typeof возвращает объект для обоих объектов, массивов и NULL.

Оператор typeof не возвращает объект для функций.

Пример

typeof {name:'John', age:34} // Returns "object"
typeof [1,2,3,4]             // Returns "object" (not "array", see note below)
typeof null                  // Returns "object"
typeof function myFunc(){}   // Returns "function"

Оператор typeof возвращает "Object" для массивов, так как в JavaScript массивы являются объектами.