我是靠谱客的博主 潇洒猫咪,最近开发中收集的这篇文章主要介绍JavaScript的四则运算以及== 与 ===比较,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

JavaScript的四则运算以及== 与 ===比较

    • 四则运算
      • 加法
      • 其他运算符
      • == 与 ===比较
        • 两者使用的场景
        • 类型转换规则
        • 例题

四则运算

加法

加法运算不同于其他运算符,它有以下几个特点:

  1. 运算中其中一方为字符串,那么就会把另一方也转换为字符串
  2. 如果一方不是数字或字符串,那么会把另一方转换为字符串或数字、

下面是几个例题

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外,其他一律使用===

类型转换规则

  1. null和undefined是相等的。要比较之前,不能将这两个转换为其他任何值
  2. 如果有一个操作数是布尔值,则在比较之前,需要先将其转换为数值——false=0,true=1
  3. 如果一个操作数是字符串,另一个是数值,比较前会将字符串转为数值
  4. 如果一个操作数是对象,另一个不是,则调用valueOf()方法,用得到的基本值类型进行比较
  5. 如果两个操作数都是对象,则比较两个是否是同一个对象,如果是则返回true,否则返回false
  6. 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的四则运算以及== 与 ===比较所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部