JavaScript基础(四):运算符

本文详细介绍了JavaScript中的各种运算符,包括算数运算符、一元运算符、逻辑运算符、赋值运算符、关系运算符、相等运算符以及三元运算符。特别强调了类型转换在运算中的作用,例如非数字类型参与运算时会被转换为Number,以及字符串相加的特殊性。此外,还讨论了运算符的优先级和短路行为,如逻辑与(&&)和逻辑或(||)的运算规则。
摘要由CSDN通过智能技术生成

运算符

运算符也称为操作符
通过运算符可以对一个或多个值进行运算或操作

1.算数运算符

  • + 对两个值进行加法运算并返回结果
  • - 对两个值进行减法运算并返回结果
  • * 对两个值进行乘法运算并返回结果
  • / 对两个值进行除法运算并返回结果
  • % 对两个值进行取余运算并返回结果

注意:

  • 除了加法以外,对非Number类型的值进行运算时,都会先转换为Number然后在做运算。
  • 而做加法运算时,如果是两个String进行相加,则会做拼串操作,将两个字符连接为一个字符串。
  • 任何值和String做加法,都会先转换为字符串,然后再拼串。

2.一元运算符

一元运算符只需要一个操作数

  • + 正号,不会对值产生任何影响,但是可以将一个非数字转换为数字
  • - 负号,可以对一个数字进行符号位取反
  • ++ 自增,可以使变量在原值的基础上自增1
    • 前++(++a):++a的值是变量的新值(自增后的值)
    • 后++(a++):a++的值是变量的原值(自增前的值)
  • -- 自减,可以使变量在原值的基础上自减1
    • 前--(–a):–a的值是变量的新值(自减后的值)
    • 后--(a–):a–的值是变量的原值(自减前的值)

3.逻辑运算符

  • ! 运算可以对一个布尔值进行取反,truefalsefalsetrue
    • 当对非布尔值使用!时,会先将其转换为布尔值然后再取反
    • 我们可以利用两个!来将其他的数据类型转换为布尔值
  • && 可以对符号两侧的值进行运算
    • 只有两端的值都为true时,才会返回true。只要有一个false就会返回false
    • 与是一个短路的与,如果第一个值是false,则不再检查第二个值
    • 对于非布尔值,它会将其转换为布尔值然后做运算,并返回原值
      • 如果第一个值为false,则返回第一个值
      • 如果第一个值为true,则返回第二个值
  • || 可以对符号两侧的值进行运算
    • 只有两端都是false时,才会返回false。只要有一个true,就会返回true
    • 或是短路的或,如果第一个值是true,则不再检查第二个值
    • 对于非布尔值,它会将其转换为布尔值然后做运算,并返回原值
      • 如果第一个值为true,则返回第一个值
      • 如果第一个值为false,则返回第二个值

4.赋值运算符

  • = 可以将符号右侧的值赋值给左侧变量
  • += a+=5相当于a=a+5
  • -= *= /= %=+=类似

5.关系运算符

  • > >= < <=
  • 关系运算符用来比较两个值之间的大小关系的
  • 关系运算符的规则和数学中一致,如果关系成立则返回true,关系不成立则返回false
  • 如果比较的两个值是非数值,会将其转换为Number`然后再比较
  • 如果比较的两个值都是String,此时会比较字符串的Unicode编码,而不会转换为Number

6.相等运算符

  • == 相等,判断左右两个值是否相等,如果相等返回true,如果不等返回false
    • 对不同的类型进行比较,会将其转换为相同的类型然后再比较,转换后相等它也会返回truenull == undifined
  • != 不等,判断左右两个值是否不等,如果不等则返回true,如果相等则返回false
    • 不等也会做自动的类型转换
  • === 全等,判断左右两个值是否全等,它和相等类似,只不过它不会进行自动的类型转换,如果两个值的类型不同,则直接返回false
  • !== 不全等,和不等类似,但是它不会进行自动的类型转换,如果两个值的类型不同,它会直接返回true

注意:

  • 由于undefined衍生自null,所以null == undefined 会返回true,但是 null === undefined 会返回false
  • NaN不与任何值相等,包括它自身,NaN == NaN 会返回false
  • 判断一个值是否是NaN,使用isNaN()函数

7.三元运算符

  • …?…:… 语法:条件表达式?语句1:语句2
  • 执行流程:
    • 先对条件表达式求值判断
    • 如果判断结果为true,则执行语句1,并返回执行结果
    • 如果判断结果为false,则执行语句2,并返回执行结果

8.优先级

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

激洪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值