在蝴蝶书中阅读到这样一段代码,通过定义is_array函数来区别数组和对象。
var is_array = function(value){
return value &&
typeof value === 'object' &&
value.constructor === Array;
};
请问这种件的连等如何解释,新人求教。。。
在蝴蝶书中阅读到这样一段代码,通过定义is_array函数来区别数组和对象。
var is_array = function(value){
return value &&
typeof value === 'object' &&
value.constructor === Array;
};
请问这种件的连等如何解释,新人求教。。。
从前读到后就可以了
&&与表示符,前面表反就直接不会向后判断返回false
||或表示符,前面不表反就直接返回前面的不会向后判断
条件?真:假 ;三元表示符
看不懂这样的就给前面的条件一个个加括号就懂了
(value && typeof value === 'object' )&& value.constructor === Array
一层一层向后执行
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
value 如果value为空的话&&的结果是false,就是判断是否有值
typeof 函数返回的是参数类型,数组和对象均返回object,
constructor用来返回对象属性创建的函数,数组的话是Array
只并上前两个的话,是无法判断是不是数组,因为还有对象的可能性。
因此需要最后一个。当3个条件都为true的话,那么其结果便是array。