|
|||||||
Общий подход к определению типа переменной в JavaScript
Время создания: 09.03.2019 00:08
Автор: br0ke
Текстовые метки: javascript, type, typeof, object, prototype
Раздел: Информационные технологии - JavaScript
Запись: and-semakin/mytetra_data/master/base/15520721319ulm81et10/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
В JavaScript нельзя так просто взять и определить тип переменной. Оператор typeof может определять тип только для примитивов (строка, число, булевский тип), а для остальных типов выдаст object. Есть универсальный способ определения типа: function type(value) { var regex = /^\[object (\S+?)\]$/; var matches = Object.prototype.toString.call(value).match(regex) || []; return (matches[1] || 'undefined').toLowerCase(); } Эта функция возвращает: console.log(type('')); // "string" console.log(type('hello')); // "string" console.log(type(String('hello'))); // "string" console.log(type(new String('hello'))); // "string" console.log(type(0)); // "number" console.log(type(-0)); // "number" console.log(type(0xff)); // "number" console.log(type(-3.142)); // "number" console.log(type(Infinity)); // "number" console.log(type(-Infinity)); // "number" console.log(type(NaN)); // "number" console.log(type(Number(53))); // "number" console.log(type(new Number(53))); // "number" console.log(type(true)); // "boolean" console.log(type(false)); // "boolean" console.log(type(new Boolean(true))); // "boolean" console.log(type(undefined)); // "undefined" console.log(type(null)); // "null" console.log(type(Symbol())); // "symbol" console.log(type(Symbol.species)); // "symbol" console.log(type([])); // "array" console.log(type(Array(5))); // "array" console.log((function() { return type(arguments) })()); // "arguments" console.log(type(function() {})); // "function" console.log(type(new Function)); // "function" console.log(type(class {})); // "function" console.log(type({})); // "object" console.log(type(new Object)); // "object" console.log(type(/^(.+)$/)); // "regexp" console.log(type(new RegExp("^(.+)$"))); // "regexp" console.log(type(new Date)); // "date" console.log(type(new Set)); // "set" console.log(type(new Map)); // "map" console.log(type(new WeakSet)); // "weakset" console.log(type(new WeakMap)); // "weakmap" |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|