From eb816c469af04c27aa6c230035743b9db0297946 Mon Sep 17 00:00:00 2001 From: Kirshanov Dmitrii <59695332+Kirshach@users.noreply.github.com> Date: Sun, 6 Feb 2022 15:46:16 +0300 Subject: fix(ru): function is not an ECMAScript type (#3924) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Спецификация ECMAScript не определяет функцию отдельным типом данных: ...The ECMAScript language types are Undefined, Null, Boolean, String, Symbol, Number, BigInt, and Object (https://tc39.es/ecma262/#sec-ecmascript-language-types) --- files/ru/web/javascript/data_structures/index.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'files/ru/web') diff --git a/files/ru/web/javascript/data_structures/index.html b/files/ru/web/javascript/data_structures/index.html index f6ed5ab9ca..b2cbc2a50d 100644 --- a/files/ru/web/javascript/data_structures/index.html +++ b/files/ru/web/javascript/data_structures/index.html @@ -22,7 +22,7 @@ foo = true; // foo становится типа Boolean

Типы данных

-

Стандарт ECMAScript определяет 9 типов:

+

Стандарт ECMAScript определяет 8 типов:

И здесь нам необходимо сделать предостережение относительно использования оператора typeof для определения типа структур, т.к. все структуры будут возвращать "object" при его использовании, так как назначение typeof -- проверка типа данных, но не структур. Если проверить тип структуры всё же необходимо, то в этом случае желательно использовать оператор instanceof, так как именно он отвечает на вопрос о том, какой конструктор был использован для создания структуры.

+

Стоит отметить два особых случая работы оператора typeof: возврат "object" для значения null и "function" для функций: первое принято считать ошибкой языка, сохраненной ради обратной совместимости, второе является условностью, удобной для проверки на принадлежность значения категории функций, где функция - это особый, "вызываемый", объект.

+

Примитивные значения

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

-- cgit v1.2.3-54-g00ecf