Чтобы быть немного более точным, чем ECMAScript-5.1, чем другие ответы (некоторые могут сказать, педантичный):
В JavaScript переменные (и свойства) не имеют типов: значения имеют. Кроме того, существует только 6 типов значений: Undefined, Null, Boolean, String, Number и Object. (Технически, есть также 7 «типов спецификации», но вы не можете хранить значения этих типов как свойства объектов или значения переменных - они используются только внутри самой спецификации, чтобы определить, как работает язык. Значения Вы можете явно манипулировать только из 6 типов, которые я перечислил.)
Спецификация использует обозначение «Тип (x)», когда хочет говорить о «типе х». Это только обозначение, используемое в спецификации: это не особенность языка.
Как ясно из других ответов, на практике вы, возможно, захотите знать больше, чем тип значения, особенно когда типом является Object. Независимо от этого, и для полноты, вот простая реализация JavaScript Type (x), как это используется в спецификации:
function Type(x) {
if (x === null) {
return 'Null';
}
switch (typeof x) {
case 'undefined': return 'Undefined';
case 'boolean' : return 'Boolean';
case 'number' : return 'Number';
case 'string' : return 'String';
default : return 'Object';
}
}