首页 > 这句Javascript语句如何解释?

这句Javascript语句如何解释?

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

var is_array = function(value){
    return value &&
        typeof value === 'object' &&
        value.constructor === Array;
        };

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


return value &&
typeof value === 'object' &&
value.constructor === Array;

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


关键字:短路操作符


从前读到后就可以了
&&与表示符,前面表反就直接不会向后判断返回false
||或表示符,前面不表反就直接返回前面的不会向后判断
条件?真:假 ;三元表示符

看不懂这样的就给前面的条件一个个加括号就懂了
(value && typeof value === 'object' )&& value.constructor === Array
一层一层向后执行


==会类型转换,===不会。
比如var a=0;
if(a==false)//成立
if(a===false)//不成立

【热门文章】
【热门文章】