《你不知道的JavaScript》是一个不错的JavaScript系列书,书名可能有些标题党的意思,但实符其名,很多地方会让你有耳目一新的感觉。

1.typeof null === "object"// true

ES6中JavaScript的类型有:null、undefined、string、number、boolean、object和symbol。但为啥上面的表达式为true呢?这其实是JavaScript的一个bug。最初设计是根据类型对应的前三位是不是0来判断是否为一个object。而null全部为0,所以null的类型误判为object。要准确判断null需要这样:

var a = null;
(!a && typeof a === "object"); // true

因为null本身是一个假值("",undefined,false,0)。而像function,{},Array等都属于object。

2.undefined与未申明

而对于未赋值的变量,type of 返回undefined,未申明的变量也返回undefined,虽然这有点迷惑,但用以检测一个变量会比较安全:

photoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训 

直接操作一个未申明的变量会报错,所以下面这样检测比较好:

if(typeof a !=="undefined"){}

等同于:

if(window.a){}

通过window的全局属性去检测,看起来更简洁,但是要注意场景,前提是存在window,且a为全局变量。

3.数字的语法

1)JavaScript中数字前面的0可以省略,小数后面的0也可以省略

photoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式