判断undefined变量的疑惑
我以前一直不清楚判断数据类型为undefined的差异,自己用的是
typeof x==="undefined"
,看到别人写x===undefined
就非常奇怪。但由无可辩驳,说出那么做有什么不好。现在终于知道了。
结论
如果x为一个全局变量,并且不在当前js文件里面,最好用typeof,否则如果这个变量不存在,很可能会发生报错。如果x明显在当前作用域内,那么用那种方法都不算错。
补充第三种判断方式
x===void 0
这种方式好处就是写的字符数量要比x===undefined
少,而且防止undefined在方法里面被复写。