上一篇文章中有提到过typeof,然则讲的比较大略,归纳综合以下:
如今须要归纳综合一下注重点,以下:
1、值和范例
js中只要值才有范例,变量没有范例。js不做“范例强迫”,也就是说,言语引擎不要求变量老是持有与其初始值同范例的值。一个变量能够如今被赋值为字符串范例值,随后又被赋值为数字范例值。
实行typeof操纵,获得的效果不是该变量的范例,而是该变量持有的值的范例,由于js中的变量没有范例。
2、undefined和undeclared
变量在未持有值的时刻为undefined,此时typeof返回undefined;
还没有在作用域中声明过的变量,此时typeoof返回的也是undefined。
浏览器对没有声明过的变量举行处置惩罚历程并非很好,‘b is not defined’轻易让人误以为是‘b is undefined’。强调一下,‘undefined’和‘is not defined’是两回事。
而typeof处置惩罚undeclared变量的体式格局则是更让人忧郁:
关于undeclared(或许not defined)变量,typeof还是返回‘undefined’。还须要注重的是,虽然b是一个undeclared变量,但typeof b并没有报错,这是由于typeof有一个特别的平安提防机制。