因为ECMAScript的类型系统是松散的,所以需要一种手段来确定任意变量的数据类型。typeof
操作符就是为此而生的。对一个值使用 typeof 操作符会返回下列字符串之一:
- “undefined”表示值未定义;
- “boolean”表示值为布尔值;
- “string”表示值为字符串;
- “number”表示值为数值;
- “object”表示值为对象(而不是函数)或null;
- “function”表示值为函数;
- “symbol”表示值为符号。
举个例子
let message = "some string"; //赋值时为字符串型
console.log(typeof message); //"string"
console.log(typeof(message));//"string"
console.log(typeof 95); //"number"
- 在这个例子中,我们把一个变量(massage)和一个数值字面量传给了 typeof 操作符。注意,因为 typeof 是一个操作符而不是函数,所以不需要参数(但可以使用参数)。
- 注意 typeof 在某些情况下返回的结果可能会让人费解,但技术上将还是正确的。比如,调用 typeof null 返回的是”object”。这是因为特殊值 null 被认为是一个对空对象的引用。