
获得徽章 0
- 今天学习了typeof
在平常使用中,我们经常使用它来检查数据类型,返回一个类型的字符串值。目前ES6有8种数据类型,其中基础的数据类型有:Boolean, string,number,null,undefined,symbol,bigint。引用数据类型:object。
1.值得注意的一点是用typeof检测null,输出的是object。这个bug出现了将近20年 可能会一直存续,因为修复它,可能会产生更多bug哈哈哈哈。
那么我们怎么检测null呢,可以采用逻辑与进行条件复合(!a && typeof a === 'object')实现
2.typeof的第二个问题就是它无法区分undefined和undeclared。未定义和未声明,一个是声明了没赋值,属于只分配了变量内存,但是没存东西。另一个是内存都没分配。但用typeof去判断时,都是输出undefined。
3.针对typeof这个检查未声明变量不会报错的现象,称之为typeof的安全防范机制。
4.这个机制的应用。可以用来检测我们当前作用域的未声明变量。比如说当我们导入,或者cv别人的代码的时候。那么我们都会看别人的代码中的变量,我们自己有没有声明过,要是声明了,万一进行覆盖,冲突什么的就不好了。所以我们可以在导入的时候加一条比如 var weNeed = (typeof importVarName !== 'undefined')?existedVar:你要导入的那一堆;
所以安全防范机制也挺好用的哈哈展开评论1