【JavaScript】6_相等运算符,条件运算符及JS中特殊运算符

本文详细介绍了JavaScript中的多种运算符,包括相等、条件及特殊运算符,并解释了它们的使用场景与优先级。

8、相等运算符

==
  • 相等运算符,用来比较两个值是否相等
  • 使用相等运算符比较两个不同类型的值时,
    它会将其转换为相同的类型(通常转换为数值)然后再比较
    类型转换后值相同也会返回true
  • null和undefined进行相等比较时会返回true
  • NaN不和任何值相等,包括它自身
===
  • 全等运算符,用来比较两个值是否全等
  • 它不会进行自动的类型转换,如果两个值的类型不同直接返回false
  • null和undefined进行全等比较时会返回false
!=
  • 不等,用来检查两个值是否不相等
  • 会自动的进行类型转换
!==
  • 不全等,比较两个值是否不全等
  • 不和自动的类型转换
    <script>

        let result = 1 == 1 // true
        result = 1 == 2 // false
        result = 1 == '1' // true
        result = true == "1" // true

        result = null == undefined // true
        result = NaN == NaN // false

        result = 1 === "1" // false
        result = null === undefined // false

        result = 1 != 1 // false
        result = 1 != "1" // false
        result = 1 !== "1" // true
        console.log(result)
    </script>

9、条件运算符

​ 条件运算符

条件表达式 ? 表达式1 : 表达式2

​ - 执行顺序:

​ 条件运算符在执行时,会先对条件表达式进行求值判断,

​ 如果结果为true,则执行表达式1

​ 如果结果为false,则执行表达式2

    <script>
        // false ? alert(1) : alert(2)
        let a = 100
        let b = 200
        // a > b ? alert('a大!') : alert("b大!")
        let max = a > b ? a : b
        // alert(max)
    </script>

10、运算符的优先级

和数学一样,JS中的运算符也有优先级,比如先乘除和加减。

可以通过优先级的表格来查询运算符的优先级

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

- 在表格中位置越靠上的优先级越高,优先级越高越先执行,优先级一样自左向右执行

优先级我们不需要记忆,甚至表格都不需要看

因为()拥有最高的优先级,使用运算符时,如果遇到拿不准的,可以直接通过()来改变优先级即可

    <script>
        let a = 1 + 2 * 3 // 7
        a = (1 && 2) || 3
        console.log(a)
    </script>

拓展:JS特殊运算符

11.1 数字转化:单目运算符 +

单目运算符 + 作用于数字无效,结果不变。但是可以用来转化非数字类型为数字,等效于 Number()

let x = false;
let y = "";
let z = "123.4";
console.log(+x); // 0
console.log(+y); // 0
console.log(+z); // 123.4

用于非数字型之间的数学运算,很简洁:

let a = "12";
let b = "24";
console.log(+a + +b); // 36

11.2 逗号运算符 ,

逗号运算符能让我们处理多个语句,使用 , 将它们分开。每个语句都运行了,但是只有最后的语句的结果会被返回

let a = (3 + 4, 5 + 6);
console.log(a); // 11

11.3 布尔值转换符 !!

两个相邻的非逻辑运算符组成的 !!,可以将一个值转换为对应的布尔值。等效于 Boolean()

console.log(!!"0"); // true
console.log(!!0); // false
console.log(!!undefined); //false
console.log(!!"aaa"); // true

11.4 空值合并运算符 ??

我们将值既不是 null 也不是 undefined 的表达式定义为已定义的值(defined)。即:??

a ?? b 结果为:

  • a 已定义,则结果为 a
  • a 不是已定义的,则结果为 b

等价于:

(a !== null && a !== undefined) ? a : b;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

名之以父

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值