2018年11月1日 · 450 words
JS
typeof返回一个字符串,表示为经计算的操作数的类型
typeof(操作数)/typeof 操作数 ()是可以省略的 返回有五种基本类型:string,number,boolean,undefined,function,object 还有ES6的Symbol
1.string:
typeof('你好')
typeof('123')
typeof('') 空字符串也是String类型
typeof(typeof('a'))
2.number:
typeof(123);
typeof(NaN);
3.boolean:
typeof(true);
typeof(false);
typeof(NaN===NaN) 强制类型转换
4.undefined:
typeof(a) 未经使用的变量的数据类型
5.object:
typeof(null) js底层所有值的前三位表示数据类型,object是000,而null的32位全是0,因此也是object
typeof([])
typeof({})
6.function:
typeof(function(){})
typeof(new Function())
typeof(class A{})
typeof(Symbol)
7.symbol:
typeof(Symbol())
暂时性死区
在ES6中let和const出现之前,typeof都是一个完全安全的操作,即不会报错,但有了ES6中let和const的出现所带来的暂时性死区特性,使得typeof也有可能报错
如果在一个块级作用域下存在let或const命令,则它所声明的变量就绑定在这个区域,不再受外部的影响.在声明之前使用这些变量就会报错.使用let命令声明变量之前是不可用的,这在语法上称为暂时性死区
typeof(a); //ReferenceError
let a;