理解js运算符

目录

算数运算符

一元运算符

自增与自减

逻辑运算符

赋值运算符

关系运算符

相等运算符

条件运算符(三元运算符)

各运算符的优先级


运算符也叫操作符,通过运算符可以对一个或多个值进行运算,并且获取运算结果。比如:typeof就是一种运算符,可以获得一个值的类型。

算数运算符

算术运算符:
    当对非数字类型值进行运算时,先将其转换为数字类型进行计算。
      且任何值与NaN做运算都会得出NaN。
 - +
    +可以对两个值进行加法运算,并将结果返回。如:a=1+2;
     如果对两个字符串进行加法运算,则会进行拼串。如:a="abc"+"d";a="abcd"
     且任何的值和字符串做加法运算,都会先转换为字符串,然后再进行运算。
     这个转换使用的是调用函数String()对其余类型的数值进行类型转换。
    
 - -
    -可以对两个值进行减法运算,并将结果返回。如:a=2-1;
 - *
    *可以对两个值进行乘法运算,并将结果返回。如: a=2*1;
 - /
    /可以对两个值进行除法运算,并将结果返回。如:a=2/1;
 任何值做- * /运算时都会转换为Number
    我们可以利用这一特点做隐式的类型转换
        可以通过为一个值-0 *1 /1来将其转换为Number,原理和Number()函数一样。
 - % 
    %可以对一个值进行取模运算(取余数)。如:a=6%2;

一元运算符

一元运算符:
 - 一元运算符,只需要一个操作数
    + 正号
        - 正号不会对数字产生任何影响
    - 负号
        - 负号可以对数字进行负号的取反
 - 对于非Number类型数据,
        它会先将其转换为Number,然后再运算。可以对一个其他数据类型使用+,将其转换为number
        它的原理和Number()函数一样。

自增与自减

自增与自减:
 - 自增 ++
    - 通过自增可以使变量在自身的基础上增加1,对于一个变量自增后,原变量的值会立刻自加1。
    - 自增分为两种:后加加(++)和前加加(++)。这两种方法均能是变量的值加一。
      不同的区别是 ++a 与 a++ 的值不同
       a++的值等于原变量的值 (自增前的值)a++ = a
       ++a的值等于原变量的新值 (自增后的值) b = a+1;++a = b;
 - 自减 --
    - 通过自减可以使变量在自身的基础上减少1,对于一个变量自减后,原变量的值会立刻自减1。
    - 自减分为两种:后减减(--)和前减减(--)。这两种方法均能是变量的值减一。
      不同的区别是 --a 与 a-- 的值不同
       a--的值等于原变量的值 (自减前的值)a-- = a
       --a的值等于原变量的新值 (自减后的值) b = a-1;--a = b;

逻辑运算符

逻辑运算符:
 js中为我们提供了三种逻辑运算符:
  - ! 非
     !可以用来对一个值进行逻辑非运算
      所谓非运算就是指对一个布尔值进行取反操作,
      true变false,false变为true。如a=false,!a=true
     如果用非对一个值进行两次取反,它不会变化。如果对一个非布尔值进行运算,
     则会将其转换为布尔值,然后再取反。我们可利用该特点将非布尔值转换为布尔值。
 - && 与
     &&可以对符号两侧值进行与逻辑运算并且返回结果。
        两个值中只要有一个值为false就返回false,只有两个值都为true时,才会返回true。
        js中的与是“短路的与”,当第一个值是false时,则不会看第二个值。
 - || 或
    ||可以对符号两侧的值进行或逻辑运算并返回结果
       两个值中只要有一个为true就返回true,只有两个值都为false时,才会返回false。
        js中的“或”属于短路的或
            如果第一个值为true,则不会在查看第二个值。
&& || 非布尔值的情况
    - 对于非布尔值的数据进行与或运算时,会先将其转换为布尔值,然后再运算,并且返回原值
    与运算:
        - 如果第一个值为true,则必然返回第二个值
        - 如果第一个值为false,则直接返回第一个值
    或运算:
        - 如果第一个值为true,则直接返回第一个值
        - 如果第一个值为false,则直接返回第二个值

赋值运算符

赋值运算符:
    =
    可以将符号右侧的值赋值给符号左侧的变量。如a=1;a="字符串";a=true;
    +=
     a += b 等价于 a = a + b;
    -=
     a -= b 等价于 a = a - b;
    *=
     a *= b 等价于 a = a * b;
    /=
     a /= b 等价于 a = a / b;
    %=
     a %= b 等价于 a = a % b;
 两侧代码实现效果一样,在实际使用中自行选择。

关系运算符

关系运算符:
    通过关系运算符可以比较两个值之间的大小关系,如果关系成立返回true,否则返回false。
 - > 大于号
    判断符号左侧的值是否大于右侧的,如果成立,返回true。否则返回false。 
 - < 小于号
    判断符号左侧的值是否小于右侧的,如果成立,返回true。否则返回false。 
 - >= 大于等于号
    判断符号左侧的值是否大于等于右侧的,如果成立,返回true。否则返回false。 
 - <= 小于等于号
    判断符号左侧的值是否小于等于右侧的,如果成立,返回true。否则返回false。 
 非数值的情况
    - 对于非数值进行比较时,会将其先转换为数字在进行比较。
    - 任何值与NaN做任何比较都是false
    - 如果两侧的值都是字符串时,不会将其转换为数字进行比较,而会分别比较两端字符串的字符编码
    比较字符编码时是一位一位进行比较,如果两位数值一样,则比较下一位。
    - 比较字符串型的数字时,一定要先进行数据类型转换。

相等运算符

相等运算符:
    相等运算符用于比较两个值是否相等,如果相等返回true,否则返回false。
    - 使用 == 来做相等运算
    - 当使用==来进行相等比较时,如果两个值的类型不同,则会自动进行类型转换。
      将其转换为相同的数据类型,在进行数据比较。
    - undefined与null值进行数据比较时,会返回true
    - NaN不和任何值相等,包括其本身。
!= 不等运算符用于判断两个值是否不等,如果不相等返回true,否则返回false。
    - 使用 != 来做不相等运算
    - 不相等运算符也会对变量进行自动的类型转换,然后再进行比较。
===  全等运算符
    - 用于判断两个值是否全等,它和相等类似,不同的是它不仅仅判断两个值的数据。
        如果两个值的类型不等,直接返回false。如果两个数据内存地址不同,也会返回false。
!== 不全等运算符
    - 用于判断两个值是否不全等,与全等判断机制相同。

条件运算符(三元运算符)

条件运算符(三元运算符):
    如:“条件表达式?语句1:语句2;”
    条件运算符在执行时,首先对条件表达式进行求值。
    如果该值为true,则执行语句1,并返回执行结果。如果该值为false,则执行语句2。
  如果条件的表达式的求值结果是一个非布尔值,则先会进行数值转换,然后再进行运算。

各运算符的优先级

1. 、[] 、new
2

()

3++、--
4

!、~、+(单目)、-(单目)、typeof、void、delete

5%、*、/
6+(双目)、-(双目)
7<<、>>、>>>
8<、<=、>、>=
9==、!==、===
10&
11^
12|
13&&
14||
15?:
16=、+=、-=、*=、/=、%=、<<=、>>=、>>>=、&=、^=、|=
17,

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

杂乱无章的我

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

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

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

打赏作者

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

抵扣说明:

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

余额充值