typeof可能返回下列某个字符串
- "undefined" -- 如果这个值未定义
- "boolean" -- 如果这个值是布尔值
- "string" -- 如果这个值是字符串
- "number" -- 如果这个值是数值
- "object" -- 如果这个值是对象或者null
- "function" -- 如果这个值是函数
需要注意的几种情况
- typeof Infinity === 'number';
- typeof NaN === 'number'; // 尽管NaN是"Not-A-Number"的缩写
- typeof (typeof 1) === 'string'; // typeof总是返回一个字符串
- typeof undefined === 'undefined';
- typeof declaredButUndefinedVariable === 'undefined';
- typeof undeclaredVariable === 'undefined';
区分数组,普通对象
- typeof [1, 2, 4] === 'object';
- typeof class C{} === 'function'
- typeof Math.sin === 'function';
- typeof null === 'object'; // 从一开始出现JavaScript就是这样的
typeof为number举例
- typeof 37 === 'number';
- typeof 3.14 === 'number';
- typeof Math.LN2 === 'number';
- typeof Infinity === 'number';
- typeof NaN === 'number';
- typeof Number(1) === 'number'; // 不要使用这种形式!
typeof为string举例
- typeof "" === 'string';
- typeof "bla" === 'string';
- typeof (typeof 1) === 'string'; // typeof总是返回一个字符串
- typeof String("abc") === 'string'; // 不要使用这种形式!
typeof为Booleans举例
- typeof true === 'boolean';
- typeof false === 'boolean';
- typeof Boolean(true) === 'boolean'; // 不要使用这种形式!
typeof为Symbols举例
- typeof Symbol() === 'symbol';
- typeof Symbol('foo') === 'symbol';
- typeof Symbol.iterator === 'symbol';
typeof为Undefined举例
- typeof undefined === 'undefined';
- typeof declaredButUndefinedVariable === 'undefined';
- typeof undeclaredVariable === 'undefined';
typeof为Objects举例
- typeof {a:1} === 'object';
- typeof [1, 2, 4] === 'object';
- typeof new Date() === 'object';
- typeof null === 'object';
typeof为function举例
- typeof function(){} === 'function';
- typeof class C{} === 'function'
- typeof Math.sin === 'function';
- typeof new Function() === 'function';
建议不要使用的
- typeof new Boolean(true) === 'object';
- typeof new Number(1) === 'object';
- typeof new String("abc") === 'object';
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。