JavaScript - 运算符

4 运算符

4.1 运算符和表达式

① 运算符
1. 运算符就是用于运算的符号, 像+、-、*、/ 等。
2. 与运算符一起运算的数据(变量或者直接量或者表达式)称之为操作数。
② 表达式
1. 由运算符与数据组成的式子,称之为表达式; 表达式有一个计算结果,称为表达式的值。
2. 最简单的表达式叫“原始表达式”,一个变量、一个直接量。
3. 多个简单的表达式可以组成一个复杂的表达式。
4. 有些表达式具有副作用,副作用指的是会改变参与运算的变量; 副作用由运算符决定。

4.2 运算符的分类

① 按照运算符需要的操作数的个数
一元运算符(一目运算符)
二元运算符(二目运算符)
三元运算符(三目运算符)
② 按照运算符的功能
1. 算术运算符
2. 关系运算符
3. 逻辑运算符
4. 位运算符
5. 赋值运算符
6. 其他运算符

4.3 运算符讲解(按照功能)

① 算术运算符
运算符含义操作数个数操作数的类型要求组成的表达式的值的类型有无副作用
+加号2numbernumber
-减号2numbernumber
*乘号2numbernumber
/除号2numbernumber
%取余(取模)2numbernumber
+正号1numbernumber
-负号1numbernumber
++累加1numbernumber
累减1numbernumber

正号运算符的作用:

通常,可以利用正号运算符把其他数据类型转为 number,利用了数据类型自动转换的原理。

效果与使用 Number() 函数是一样的。

累加和累减运算符:

  1. 累加和累减运算符都有副作用,要求操作数必须以变量的形式给出。

  2. 累加和累减运算符可以在操作数的前面,也可以在操作数的后面;

    运算符不论在前还是在后产生的副作用都是一样的。

    运算符在前还是在后,表达式的值是不一样的。

    ① 运算符在前: 如 ++n,  取n累加之后的值作为表达式的值。
    ② 运算符在后: 如 n++, 取n累加之前的值作为表达式的值。
    
② 关系运算符(比较运算符)
运算符含义操作数个数操作数的类型要求组成的表达式的值的类型有无副作用
>大于2number、stringboolean
>=大于等于2number、stringboolean
<小于2number、stringboolean
<=小于等于2number、stringboolean
==相等2number、stringboolean
!=不相等2number、stringboolean
===全等2没有要求boolean
!==不全等2没有要求boolean

比较大小的规则如下:

  1. 如果两个操作数类型不一致,转为 number 之后才进行比较。
  2. NaN 与任何数据进行任何比较得到都是 false。
  3. 如果两个操作数都是字符串,会按照字符串的比较规则进行比较。

字符串比较大小的规则:

  1. 字符串按每位字符比较。
  2. 取每个字符的unicode 编码比较大小。

判断相等() 和不相等(!)的规则:

  1. 如果两个操作数类型不一致,转为 number 之后才进行比较。
  2. NaN 与任何数据都不相等,包括自己。
  3. 如果两个操作数都是字符串,会使用字符串的比较规则进行比较:两个字符串完全一致就相等。

null 与其他类型的数据进行判断相等操作,具有自己的特殊规则:

null == '';   // false
null == false; // false
null == 0;    // false
null == undefeind;  // true 

判断全等(=)和不全等(!)的规则:

  1. 如果两个操作数类型不一致,直接全等不成立。
  2. 两个操作数类型一致且值相同才能全等成立。
  3. 全等与相等相比,不会发生数据类型的自动转换。
③ 逻辑运算符
运算符含义操作数个数操作数的类型要求组成的表达式的值的类型有无副作用
&&逻辑与(并且)2没有要求取其中一个操作数的值作为表达式的值
||逻辑或(或者)2没有要求取其中一个操作数的值作为表达式的值
!逻辑非1booleanboolean

逻辑与组成的表达式的取值规则如下:

  1. 如果第一个操作数成立,取第二个操作数的值作为表达式的值。
  2. 如果第一个操作数不成立,取第一个操作数的值作为表达式的值。

逻辑或组成的表达式的取值规则如下:

  1. 如果第一个操作数成立,取第一个操作数作为表达式的值。
  2. 如果第一个操作数不成立,取第二个操作数作为表达式的值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值