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
== != === !==     等于、不等于、严格相等、非严格相等
&  按位与
^    按位异或
|    按位或
&&    逻辑与
||    逻辑或
?:     条件
=  赋值、运算赋值
,  多重求值、分割语句
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值