zoukankan      html  css  js  c++  java
  • JS运算符

    ## JS运算符
    #### 算数二元运算符
    - +加号
        - 对符号两侧的值进行加法运算并将结果返回
        - 对非数字(除了字符串)进行加法运算时,它会将其先转换为数字,然后再运算
        - 任何值和NaN做任何运算都返回NaN
        - 对两个字符串进行相加,则会进行拼串的操作
    - -减号
        - 减号可以对符号两侧的值进行减法运算
    - *乘号
        - 乘法可以对符号两侧的值进行乘法运算
    - /除号
        - 除法可以对符号两侧的值进行除法运算
    - %取模
       - %可以对符号两侧的值进行取模(取余数)运算
       - 同样对非数字进行取余数的运算,也会转换为数字然后运算
       
    **加法、减法、除法、乘法、取模对字符串中非数字运算结果都为NaN** 

    #### 算数一元运算符
    - 一元加号
        - 一元加号相当于数学运算中的正号
        - 不会对一个数值产生任何变化
    - 一元减号
        - 一元减号相当于数学运算中的负号
        - 负号可以对一个数值进行符号位取反

    #### 自增自减
    - 自增
        - 指在变量原值基础上增加一个1
        - 后++(a++) 的值是变量自增前的值(变量的原值)
        - ++前 (++a)的值是变量自增后的值(变量的新值)
        - 无论是前++还是后++都会立即使原变量自增1.调用几次就自增几次
    - 自减
        - 指在变量原值基础上减少一个1
        - 后-- (a--)的值是变量自减前的值(变量原值)
        - --前 (--a) 的值是变量自减后的值(变量新值)
        - 无论是--前 还是后-- 都会使原变量立即自减1
        
    #### 逻辑运算符
    - ! 逻辑 非
        - 为一个布尔值取反
        - true变成false. false变成true
        - 如果对一个非布尔值进行取反操作,它会将其转换为布尔值,然后再取反
    - && 逻辑 与 (爱情观)
        - &&可以对符号两侧的值进行 与 运算
        - 两端只有都是true时,才会返回true.只要有一个false就会返回false
        - JS中 与 运算是短路的与,如果第一个值是false,则不看第二个值直接执行结果
    - || 逻辑 或 (亲情观)
        - ||可以对符号两侧的值进行 或 运算
        - 只要有一个true,就会返回true. 两端只有都是false时,才会返回false,
        - JS中的 或 也是短路的或 .如果第一个值是true,则不看第二个值直接执行结果
        
    **非布尔值的与运算**

        1. 如果两个值都为true,则返回后边的
        2. 如果两个值中有false,则返回靠前的false
        如果第一个值为false,则返回第一个.如果第一个值是true,则无脑直接返回第二个值

    **非布尔值的或运算**

        1.两个值中有true,则返回靠前的true.
        2.如果两个值都为false,则返回后边的
        如果第一个值为true,则返回第一个.如果第一个值是false,则无脑直接返回第二个值

    #### 赋值运算符
    - = 赋值. 可以将右边的值赋值给左边的变量

             +=
                  a+=x 等价于a=a+x
             -=
                  a-=x 等价于a=a-x

             *=
                   a*=x 等价于a=a*x
             /=
                  a/=x 等价于a=a/x
             %=
                  a%=x 等价于a=a%x


    #### 关系运算符
    - 可以比较两个值之间的大小关系
    - 如果对非数值类型进行关系运算,则会将他们转换为number,然后再比较 
    - 当关系运算符两侧都是字符串时,它不会将字符串转换为number,而是会比较字符串的unicode编码
    - 当字符串中含有多个字符时,会逐位进行比较
    - NaN和任何值比较都是false

            >      大于号.比较符号左侧的值是否大于右侧的值
            -  如果关系成立返回true,否则返回false
            
            >=    大于等于号.比较左侧的值是否大于或等于右侧的值
             -  如果关系成立返回true,否则返回false
            
            <      小于号 比较符号左侧的值是否小于右侧的值
              - 如果关系成立返回true,否则返回false
            
            <=    小于等于号.比较左侧的值是否小于或等于右侧的值
              - 如果关系成立返回true,否则返回false

    #### 相等运算符 和 全等运算符
    - == 相等运算符
        - 判断两个值是否相等
        - 相等返回true
        - 不相等返回false
        
    **如果对两个类型不同的变量进行相等比较,先将其转换为相同的类型,然后再比较**

    - === 全等运算符
        - 只判断两个值的类型是否相同
        - 不同直接返回false
        - 全等和相等的区别就是 相等会做自动的类型转换.全等不会
    - != 不等运算符
        - 如果两个值不等则返回true
        - 不等对值进行自动的类型转换,如果转换后不相等,则为true
    - !== 全不等
        - 全不等比较的两个值类型不同,直接返回true
    - **isNaN()**
        - 专门判断一个值是否是NaN,如果是返回true,否则返回false
        

    #### 三元运算符 (三目运算符)
    - 三元运算符需要三个操作数
    - 语法:
        - 条件表达式 ? 语句1 : 2
    - 执行流程:
        - 先对条件表达式求值判断
        - 如果判断结果为true,则执行语句1,并将执行结果返回
        - 如果判断结果为false 则执行语句2,并将执行结果返回

    #### 运算符优先级
    ![](http://i.imgur.com/SfIUon2.png)

  • 相关阅读:
    nyoj-116-士兵杀敌(二)
    nyoj-520-最大素因子
    nyoj-333-mdd的烦恼
    nyoj-172-小珂的图表
    nyoj-332-SPY
    nyoj-49-开心的小明
    nyoj-456-邮票分你一半
    nyoj-325-zb的生日
    nyoj-372-巧克力
    vwware虚拟机无法连接外网
  • 原文地址:https://www.cnblogs.com/huifang/p/7342017.html
Copyright © 2011-2022 走看看