JavaScript基础 -- 运算符

  

运算符

  运算符也叫操作符,通过运算符可以对一个或多个值进行运算,并获取运算结果

  比如: typeof就是运算符, 可以来获取一个值的类型,他会将该值的类型以字符串的形式返回

 算数运算符

    当对非Number的值进行算数运算,会先将其转换为Number类型再运算

    任何值和NaN运算都会得到NaN

    + : 

      +可以对两个值进行加法运算,并将结果返回

      如果对两个字符串进行加法运算,则会做拼串

      任何的值和字符串做加法运算,都会先转换为字符串,再做拼串, 可利用这一特点将数字转换为字符串类型

    - :  可以对两个值进行减法操作,并将结果返回

    * :  可以对两个值进行乘法操作,并将结果返回

    /  :  可以对两个值进行除法操作,并将结果返回

    % :  取余数

  一元运算符

      只需要一个操作数

      + :  正号,不会对数字产生任何影响

      - :   负号 , 负号可以对数字取反

       对于非Number类型 , 会先将其转换为Number类型

 

  自增自减

    自增 ( ++ ) : 

      - 通过自增可以使变量在自身的基础上增加1

      - 对于一个变量自增之后,原变量的值会立即自增1

      - 自增分两种: 后++(a++) 和 前++(++a)

        不同的是a++ 和 ++a 的值不同

        a++的值等于原变量的值( 自增前的值 ),

        ++a的值等于原变量新值( 自增后的值 )

    自减 ( -- ) : 

      - 通过自减可以使变量在自身的基础上减1

      - 自减分两种: 后--(a--) 和 前--(--a)

        不同的是a-- 和 --a 的值不同

        a--的值等于原变量的值( 自减前的值 ),

        --a的值等于原变量新值( 自减后的值 )

  逻辑运算符

      JS中为我们提供了三种逻辑运算符

        ! ( 非 ) :

          - ! 可以对一个值进行非运算

          - 所谓非运算就是值对一个布尔值进行取反操作

            true变false, false变true

          - 如果对非布尔值进行非运算,则会先将其转换为布尔值,再取反 

      布尔值的情况:

        && ( 与 ) :

          - 可以对符号两侧的值进行与运算并返回结果

          - 两个值中只要有一个值是false就返回false , 只有两个都是true才返回true

        || (或) :

          - 可以对符号两侧的值进行或运算并返回结果

          - 两个值中只要有一个值是true就返回true , 只有两个都是false才返回false

      非布尔值的情况:

        && ( 与 ) :

          - 对于非布尔值进行与运算,会先将其转换为布尔值,然后在运算,并且返回原值

          - 如果第一个值为true ,则必然返回第二个值

           如果第一个值为false ,则直接返回第一个值

        || (或) :

          - 对于非布尔值进行或运算,会先将其转换为布尔值,然后在运算,并且返回原值

          - 如果第一个值为true ,则直接返回第一个值

           如果第一个值为false ,则返回第二个值

  赋值运算符

      = 可以将符号右侧的值赋值给左侧变量  

      += : a += 5 等价于 a = a + 5

      -= : a -= 5 等价于 a = a - 5

      *= : a *= 5 等价于 a = a * 5

      /= : a /= 5 等价于 a = a / 5

      %= : a %= 5 等价于 a = a % 5

  关系运算符

      通过关系运算符可以比较两个值之间的大小关系,如果关系成立它会返回true, 关系不成立则返回false 

      > 大于号 : -判断符号左侧的值是否大于右侧的值, 成立则返回true,不成立则返回false

      >= 大于等于号 : -判断符号左侧的值是否不小于右侧的值, 成立则返回true,不成立则返回false 

      < 小于号 : -判断符号左侧的值是否小于右侧的值, 成立则返回true,不成立则返回false 

      <= 小于等于号 : -判断符号左侧的值是否不大于右侧的值, 成立则返回true,不成立则返回false  

     非数值的情况

        对于非数值进行比较时,会先将其转换为数值在进行比较

        任何值和NaN进行任何比较时都是false 

       特殊情况 : 如果符号两边都是字符串时,不会将其转换为数值,而是比较两个字符串的字符编码,

            比较字符编码是是一位一位进行比较的,如果两位一样,则比较下一位,所以可以借用它对英文进行排序

            在比较两个字符串型的数字时,一定记得转型

  相等运算符

    比较两个运算符是否相等,如果相等则返回true, 否则返回false

    使用 == 来做相等运算

    当使用 == 来比较两个值时,会做自动的类型转换,转换成相同的类型,再比较

    undefind 衍生自 null ,所以这两个值做相等判断时,会返回true

    NaN 不和任何值相等,包括它自己本身,可以通过isNaN() 函数来判断一个值是否是NaN,如果该值是NaN则返回true

    不相等使用 !=来做运算,与 相等运算符 相反

    === 全等  用来判断两个值是否全等,他和相等类似,不同的是他不会做自动的类型转换,如果两个值的类型不同,直接返回false

    !== 不全等 ,与全等相反

  条件运算符

    也叫三元运算符

      语法: 条件表达式?语句1 : 语句2

      流程 : 条件运算符在执行时,首先对条件表达式进行求值

          如果该值为true,则执行语句1,并返回执行结果

          如果该值为tfalse,则执行语句1,并返回执行结果

      

  运算符的优先级

    优先级越高越先计算,优先级一样,则从左往右计算

    可以使用()括号改变优先级

原文地址:https://www.cnblogs.com/-Aqiu/p/13735106.html