购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.8 本章常见面试题

1. 运算符“==”和“===”有什么区别?

“===”是严格相等,左右两边不仅值要相等,类型也要相等,例如'1'===1的结果是false,因为一边是string类型,另一边是number类型。

“==”两边只要值相等,就返回true,例如'1'==1的结果是true。

“==”两边类型不一样时,先进行自动类型转换后,再比较值是否相同。

2. null和undefined有什么区别?

(1)null转为数值时为0,undefined转为数值时为NaN。

(2)当声明的变量还未被初始化时,变量的默认值为undefined。

(3)调用函数时,应该提供的参数没有提供,该参数的值为undefined。

(4)对象中没有赋值的属性,该属性的值为undefined。

(5)函数没有返回值时,默认返回undefined。

3. typeof是否能正确判断所有数据类型?

不能。对于原始类型来说,除了null都可以调用typeof显示正确的类型。对于引用数据类型,除了函数之外,都会显示“object”。因此采用typeof判断null和对象数据类型是不合适的,采用运算符instanceof会更好,instanceof的原理是基于原型链的查询,只要处于原型链中,判断永远为true。 ht8mXwU/lL5O7hMis+/Ki4PexKjyTDCWUgQXyVxL3BoH7cf/YAQtX0BvGEkVC4A2

点击中间区域
呼出菜单
上一章
目录
下一章
×