javascript代码实例教程-说说js的==运算符和if语句

发布时间:2019-01-19 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-说说js的==运算符和if语句脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。

大家都知道,这两个都与布尔值有关,运算==会返回一个布尔值,而if()或者三元运算符?:都会去判断布尔值,在js中==运算符和===运算符不一样大家都知道,前面一个会进行类型转化,而后面这个不会,而if()里面也会进行类型转化。

先来说说==

先上几个例子:

console.LOG("123"==123);//true

console.log([1,2,3]==123);//false

console.log([1,2,3]=="1,2,3");//true

console.log(null==undefined);//true

console.log(NaN==NaN);//false

console.log([]==[]);//false

console.log([]==![]);//true

console.log({}=="[object Object]")//true

先来说说原理,当两边数据类型不一样时,会进行类型转化,null,undefined,NaN是三个特殊的东东,要记住它们,然后我们上一张图来解释一下吧

javascript代码实例教程-说说js的==运算符和if语句

这是五种基本数据类型再加一个object,我们来看看它们之间比较到底是怎么做的。学过数学的都知道,一共有15种情况,下面我们一种一种来分析

1.number--boolean

除了1和0能分别转化为true和false之外,其余既不等于true,也不等于false,是我自己实验的,嘿嘿.

2.number--object

首先调用Object.toString()方法,然后再调用Number()方法,将字符串转化为number,除了数组,基本上是不可能相等了。

3.number--undefined

直接不等于

4.number--string

string调用Number()方法,再跟number比较

5.number--null

直接不等于

6.boolean--object

这里要分一下数组和非数组,非数组既不等于true,也不等于false,数组会先调用toString(),然后再调用Boolean()方法,然后再跟boolean比较。

7.boolean--undefined

undefined既不等于true,也不等于false

8.boolean--string

string调用Number,然后再比较,回到第一种情况

9.boolean--null

null既不等于true,也不等于false

10.object--undefined

直接不等于

11.object--string

调用object的toString()方法,再比较

12.object--null

直接不等于,除了null等于null

13.undefined--string

直接不等于

14.undefined--null

等于

15.string--null

直接不等于

 

 

 

其实说了这么多,可以用一张图来提炼精髓

javascript代码实例教程-说说js的==运算符和if语句

说完了==号,我们再来看看if,其实if这种情况有很多,比如三元,比如||,&&等,都会存在转化为boolean值的时候,这个时候的规则又是怎样的呢?

直接上false的情况,除了false的其余就是true了.

null,undefined,0,"",NaN 除了这些其余的基本上就是true了。

 

这下我们再来看看上面的题:

 

console.log("123"==123);//true 直接调用Number()

console.log([1,2,3]==123);//false [1,2,3].toString()后等于"1,2,3",再调用Number("1,2,3")后变成NaN,当然不等了

console.log([1,2,3]=="1,2,3");//true 这个上面解释了

console.log(null==undefined);//true

console.log(NaN==NaN);//false 这个记住

console.log([]==[]);//false 类型相同,比较指针位置

console.log([]==![]);//true //首先![]为false,因为在if中,[]为true,然后是比较[]==false,[]先调用toString变成"",然后调用Number("")变成0,0可以变成false。

console.log({}=="[object Object]")//true 这个不用解释了吧,调用toString()变成[object Object]

 

好了,还是要多分析才能记住问题呀,嘿嘿。

 

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-说说js的==运算符和if语句全部内容,希望文章能够帮你解决javascript代码实例教程-说说js的==运算符和if语句所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。