为了账号安全,请及时绑定邮箱和手机立即绑定

请问下面这段JavaScript代码如何解释,连等的意思是什么?

请问下面这段JavaScript代码如何解释,连等的意思是什么?

zhang012 2015-12-01 20:27:49
在蝴蝶书中阅读到这样一段代码,通过定义is_array函数来区别数组和对象。var is_array = function(value){    return value && typeof value === 'object' &&    value.constructor === Array;        };请问这种件的连等如何解释,新人求教。。。
查看完整描述

3 回答

已采纳
?
慕冬雪

TA贡献16条经验 获得超3个赞

【===】

1、如果类型不同,就[不相等] 
2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断) 
3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。 
4、如果两个值都是true,或者都是false,那么[相等]。 
5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。 
6、如果两个值都是null,或者都是undefined,那么[相等]。 


=== 也就是必须严格等于,具体的可以百度下==和===的区别

谢谢

查看完整回答
反对 回复 2015-12-01
?
zhang012

TA贡献4条经验 获得超0个赞

return value &&

typeof value === 'object' &&

value.constructor === Array;

value 如果value为空的话&&的结果是false,就是判断是否有值
typeof 函数返回的是参数类型,数组和对象均返回object,
constructor用来返回对象属性创建的函数,数组的话是Array
只并上前两个的话,是无法判断是不是数组,因为还有对象的可能性。
因此需要最后一个。当3个条件都为true的话,那么其结果便是array。

引用自segmentfault的fidding同学的答案。

查看完整回答
反对 回复 2015-12-02
?
蛋白

TA贡献3条经验 获得超0个赞

判断是否为数组,对象的constructor属性就是它的原型函数Array.

undefined == null;    //true

undefined === null; //false


查看完整回答
反对 回复 2015-12-02
  • 3 回答
  • 0 关注
  • 1323 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信