Об альтернативе typeof
я уже писал в заметке «
Проверка типа данных в JavaScript». А недавно на просторах интернета нашел ещё один аналогичный вариант такой функции.
var toType = function (obj) {
return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
}
Стоить только заметить, что он примерно в 2 раза медленнее, чем вариант со slice
. Всё-таки регулярные выражения не спасает даже кеширование.