提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
提示:以下是本篇文章正文内容,下面案例可供参考
一、JS中判断数组的方法
1. 通过Object.prototype.toString.call()
Object.prototype.toString.call([])-----> [object Array]
Object.prototype.toString.call([]).slice(8,-1)-----> 'Array'
2. 通过原型链判断
_proto_ ---->隐式原型
prototype---->显式原型
对象的隐式原型等于构造函数的显式原型
[]._proto_===Array.prototype
3. 通过ES6的Array.isArray()做判断
Array.isArray([]) ------》推荐使用
4. 通过instanceof
[] instanceof Array
5. 通过Array.prototype.isPrototypeOf 判断是否在传入内容的原型链上
Array.prototype.isPrototypeOf([])
二、JS中判断值相等
相等运算符(双等)
1==true 结果true
1=='1' 结果为true
两边的类型不一致,进行类型强制转换,然后再去比较
严格相等运算符(三等)
1===true 结果false
1==='1' 结果为false
两边的类型不一致,不会进行类型强制转换,直接返回false,必须等型等值
三、 Object.is
用来判断两个值是否严格相等,处理一些特殊情况,如-0和+0不再相等,两个NaN是相等的
Object.is(+0,-0) 结果false
Object.is(NaN,NaN) 结果为true
四、JS中 && 和 || 操作的返回值
首先对第一个操作数进行条件判断,如果不是布尔值,就先强制转化为 布尔类型,然后进行条件判断
1 || 2 结果1 第一个操作数转为布尔值为真,返回第一个操作数的值
0 || 2 结果为2 第一个操作数转为布尔值为假,返回第二个操作数的值
1 && 0 结果0 第一个操作数转为布尔值为真,返回第二个操作数的值
0 && 2 结果为0 第一个操作数转为布尔值为假,返回第一个操作数的值