• JavaScript基础(5)_运算符


    运算符

    类型(一元)运算符

      +(正)   -(负)   ++(自增)  --(自减)  typeof(以字符串形式返回类型值) 

    算术(二元)运算符  

      +(加、字符串"连接"符)     -(减)    *(乘)    /(除)    %(求余)         

    条件(三元/三目)运算符  ?:(表达式1?表达式2:表达式3)
    赋值运算符

      =   +=   -=(   *=    /=    %=

    比较运算符  

      >   <   >=   <=   ==   !=    ===(全相等)    !==(不全相等)

    逻辑运算符  &&(逻辑与)     ||(逻辑或)      !(取反)
    位运算符  

      &   |    ~   ^    <<:按位左移      >>:按位右移

    类型(一元)运算符

    +(正)  -(负)
    对任何值前使用:+(正)  -(负)
    1、对于Number值,+代表(正)-代表(负)。
    2、对于非Number类型值,它会先将其转换为Number类型值,然后再运算(原理和Number()一样)。

    ++(自增)  --(自减) 
    自增自减运算符可以放到变量前或者后:++(自增:在原来的值上+1)  --(自减:在原来的值上-1) 
    例如:
    var a = 1;
    var b = a++;   //a++ 会导致 a = a + 1; a = 2;而 b = 1;(先赋值后运算)
    var c = ++a;   //++a 会导致 a = a + 1; a = 2;而 c = 2;(先运算后赋值)

    算术(二元)运算符 

    +(加、字符串"连接"符)  -(减)  *(乘)  /(除)  %(求余)  
    总结:
    1、任何值(和字符串做加法运算除外)和NaN运算都是NaN。
    2、对非Number值(和字符串做加法运算除外)做算术运算都会自动转换为"Number值"再运算。【隐型转换】
    4、对非String值和字符串做加法运算,都先转化为字符串型,然后再做拼接运算(将两个字符串连接到一起)。【隐型转换】

    逻辑运算符 

    逻辑运算:针对不同的结果进行匹配,满足条件返回true,不满足返货false
             &&:逻辑与,左边的条件与右边的条件同时成立(两边结果都为true)
              ||:  逻辑或,左边的条件或者右边的条件只要有一个满足即可
              !:   逻辑非,对已有的条件进行取反,本身为true,取反结果就是false

    注意:逻辑与和逻辑或又称之为短路运算:如果第一个表达式结果已经满足条件了,那么就不会运行逻辑运算符后面的表达式:在书写代码的时候,尽量将出现概率最高的(能够直接判断出结果)的表达式放到第一位。

    补充:1、任意数据类型做两次非运算,即可转化为布尔值。
               2、对于非布尔值进行运算时,会将其先转换为布尔值运算,最后返回原值。

    赋值运算符

    赋值运算:符号是"=",表示将右边的结果(可以是变量、数据、常量和其他计算出来的结果),保存到内存的某个位置,然后将位置的内存地址赋值到左侧的变量(或常量)。

    类似的还有以下常见赋值运算符:
    +=:(加赋值)左边的结果与右边结果相加,然后赋值给左边。
    -=(减赋值) *=(乘赋值)   /=(除赋值)   %=(求余赋值) 

    如:a += b;等价于 a = a + b;以此类推:
    注意: 如果进行除非或者取余运算,那么要考虑右边表达式的结果是否为0

    比较运算符(又称关系运算符)

    比较运算:比较两个数据的大小,或者两个内容是否相同(满足返回true,不满足返回false)
    >:大于 >=:大于等于  <:小于  <=:小于等于
    ==:左边的与右边的形同(大小相同)
    !=:左边的与右边的不同(大小不同)
    ===:全等于,左边与右边相同:大小以及数据的类型都要相同
    !==:不全等于,只有大小或者类型不同

    注意:
    1、对于非Number值进行比较时,会将其自动转换为Number值然后再比较。
    2、任何值和NaN进行比较都是false。
    3、如果比较双方都是字符串型,则比较字符中的Unicode编码。
    4、undefined衍生自null,这两值做相等(==)判断时,会返回true。
    5、NaN不和任何值相等,包括他本身。(可以通过isNaN()函数来检查一个值是否为NaN)

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

    三目运算:有三个表达式参与的运算(简单的分支结构缩写)
    语法格式:
    表达式1?表达式2:表达式3
    运算:如果表达式1成立,那么执行表达式2,否则执行表达式3;

    注意:如果表达式本身比较复杂,建议使用括号包起来。

    位运算符   

    位运算符:取出计算机中最小的单位(位bit)进行运算
    &:按位与  |:按位或  ~:按位非  ^:按位异或  <<:按位左移  >>:按位右移

    运算符的优先级

    运算符   描述
    . [] ()    字段访问、数组下标、函数调用以及表达式分组
    ++ -- - ~ ! delete new typeof void一元运算符、返回数据类型、对象创建、未定义值
    * / %  乘法、除法、取模
    + - +    加法、减法、字符串连接
    << >> >>>  移位
    < <= > >= instanceof  小于、小于等于、大于、大于等于、instanceof
    == != === !==     等于、不等于、严格相等、非严格相等
    &  按位与
    ^    按位异或
    |    按位或
    &&    逻辑与
    ||    逻辑或
    ?:     条件
    =  赋值、运算赋值
    ,  多重求值、分割语句
  • 相关阅读:
    uni-app引入地图map组件--APP开发
    一、项目整合管理
    库兹涅茨周期
    请问这个for loop的running time是多少?
    数据可视化分析工具如何在国内弯道超车,迅速崛起?
    Qt 之悬浮球菜单
    Docker安装Prometheus + Grafana
    Python 越来越火爆
    【做算法学数据结构】【链表】删除排序链表中的重复元素
    Coursera: An Introduction to American Law 学习笔记 Week 02: Contract Law
  • 原文地址:https://blog.csdn.net/no15870678621/article/details/126560838