猿问

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

在蝴蝶书中阅读到这样一段代码,通过定义is_array函数来区别数组和对象。

var is_array = function(value){

    return value && typeof value === 'object' &&

    value.constructor === Array;
       };

请问这种件的连等如何解释,新人求教。。。


zhang012
浏览 1324回答 3
3回答

慕冬雪

【===】1、如果类型不同,就[不相等] 2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断) 3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。 4、如果两个值都是true,或者都是false,那么[相等]。 5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。 6、如果两个值都是null,或者都是undefined,那么[相等]。 === 也就是必须严格等于,具体的可以百度下==和===的区别谢谢

zhang012

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

蛋白

判断是否为数组,对象的constructor属性就是它的原型函数Array.undefined == null;    //trueundefined === null; //false
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答