3 回答
TA贡献16条经验 获得超3个赞
【===】
1、如果类型不同,就[不相等]
2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)
3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。
4、如果两个值都是true,或者都是false,那么[相等]。
5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。
6、如果两个值都是null,或者都是undefined,那么[相等]。
=== 也就是必须严格等于,具体的可以百度下==和===的区别
谢谢
TA贡献4条经验 获得超0个赞
return value &&
typeof value === 'object' &&
value.constructor === Array;
value 如果value为空的话&&的结果是false,就是判断是否有值
typeof 函数返回的是参数类型,数组和对象均返回object,
constructor用来返回对象属性创建的函数,数组的话是Array
只并上前两个的话,是无法判断是不是数组,因为还有对象的可能性。
因此需要最后一个。当3个条件都为true的话,那么其结果便是array。
引用自segmentfault的fidding同学的答案。
TA贡献3条经验 获得超0个赞
判断是否为数组,对象的constructor属性就是它的原型函数Array.
undefined == null; //true
undefined === null; //false
添加回答
举报