概述
JavaScript的四则运算以及== 与 ===比较
- 四则运算
- 加法
- 其他运算符
- == 与 ===比较
- 两者使用的场景
- 类型转换规则
- 例题
四则运算
加法
加法运算不同于其他运算符,它有以下几个特点:
- 运算中其中一方为字符串,那么就会把另一方也转换为字符串
- 如果一方不是数字或字符串,那么会把另一方转换为字符串或数字、
下面是几个例题
1 + '1' = '11'
true + true = 2
4 + [1, 2, 3] = "41, 2, 3"
'a' + + 'b = "aNaN"
对于第一个题:触发上面的特点一,将数字1转换为字符串,得到结果:'11'
对于第二个题:触发上面的特点二,将true转换为1
对于第三个题:触发上面的特点二,将数组通过toString转换为字符串'1, 2, 3'
,得到结果:"41, 2, 3"
对于第四个题:因为 + 'b’等于NaN,所以结果为:"aNaN"
其他运算符
对于其他运算符,只要其中一方是数字,则另一方会转换为数字。空字符串转为0
4 * '3' = 12
4 * [] = 0
4 * [1, 2] = NaN
== 与 ===比较
两者使用的场景
除了判断==null
外,其他一律使用===
类型转换规则
- null和undefined是相等的。要比较之前,不能将这两个转换为其他任何值
- 如果有一个操作数是布尔值,则在比较之前,需要先将其转换为数值——false=0,true=1
- 如果一个操作数是字符串,另一个是数值,比较前会将字符串转为数值
- 如果一个操作数是对象,另一个不是,则调用valueOf()方法,用得到的基本值类型进行比较
- 如果两个操作数都是对象,则比较两个是否是同一个对象,如果是则返回true,否则返回false
- NaN和所有值,包括它自己,都不相等。但在Set中NaN不重复
例题
题目一:
[] === ![] //结果为true
分析:Number([]) = 0, [] == ![] -> [] == false -> [] == 0 -> ' ' == 0 -> 0 == 0 -> true
题目二:
var a = [], if (a == []) {
console.log(99)
}
//打印结果为undefined
分析:[]可以理解为new Array,相当于声明一个空数组,程序会自动在堆中为其开辟一块内存空间,它和之前a==[]生成的内存空间不一样,所以自然不相等
题目三:
{} === !{} //结果为false
分析:Number({}) = NaN, {}== !{} -> {} == false -> {} == 0 -> NaN == 0 -> true
最后
以上就是潇洒猫咪为你收集整理的JavaScript的四则运算以及== 与 ===比较的全部内容,希望文章能够帮你解决JavaScript的四则运算以及== 与 ===比较所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复