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 instance === "object"
. Специальный примитив, используемый не только для данных но и в качестве указателя на финальную точку в Цепочке Прототипов;typeof instance === "object"
. Простая структура, используемая не только для хранения данных, но и для создания других структур, где любая структура создаётся с использованием ключевого слова new
: new Object, new Array, new Map, new Set, new WeakMap, new WeakSet, new Date и множество других структур;typeof instance === "function"
. Специальный случай, упрощающий определение типа для Функций, несмотря на то, что все функции конструктивно унаследованы от Object.И здесь нам необходимо сделать предостережение относительно использования оператора typeof
для определения типа структур, т.к. все структуры будут возвращать "object"
при его использовании, так как назначение typeof
-- проверка типа данных, но не структур. Если проверить тип структуры всё же необходимо, то в этом случае желательно использовать оператор instanceof, так как именно он отвечает на вопрос о том, какой конструктор был использован для создания структуры.
Стоит отметить два особых случая работы оператора typeof
: возврат "object"
для значения null
и "function"
для функций: первое принято считать ошибкой языка, сохраненной ради обратной совместимости, второе является условностью, удобной для проверки на принадлежность значения категории функций, где функция - это особый, "вызываемый", объект.
Все типы данных в JavaScript, кроме объектов, являются иммутабельными (значения не могут быть модифицированы, а только перезаписаны новым полным значением). Например, в отличии от C, где строку можно посимвольно корректировать, в JavaScript строки пересоздаются только полностью. Значения таких типов называются «примитивными значениями».
-- cgit v1.2.3-54-g00ecf