JavaScript 操作符(三)

877 阅读2分钟

这是我参与11月更文挑战的第15天,活动详情查看:2021最后一次更文挑战

JavaScript 用于操作数据值的操作符包括算术操作符、位操作符、关系操作符和相等操作符,它们能够适用于很多值,如字符串、数字值、布尔值。

加性操作符

1. 加法

加法操作符由一个加号 + 表示;

var result = 1 + 1;

特殊值处理规则:

  • 有一个操作数是 NaN,结果是 NaN
  • InfinityInfinity,结果是 Infinity
  • -Infinity-Infinity,结果是 -Infinity
  • Infinity-Infinity,结果是 NaN
  • +0 加 +0,结果是+0;
  • -0 加 -0,结果是-0;
  • +0 加 -0,结果是+0;
  • 两个操作数都是字符串,第一个操作数和第一个操作数拼接;
  • 只有一个操作数是字符串,另一个操作数转换成字符串,然后两个字符串拼接;
2. 减法

减法操作符由一个减号 - 表示;

var result = 1 - 1;

特殊值处理规则:

  • 有一个操作数是 NaN,结果是 NaN
  • InfinityInfinity,结果是 NaN
  • -Infinity-Infinity,结果是 NaN
  • Infinity-Infinity,结果是 Infinity
  • -InfinityInfinity,结果是 -Infinity
  • +0 减 +0,结果是+0;
  • -0 减 +0,结果是-0;
  • -0 减 -0,结果是+0;
  • 有一个操作数是字符串、布尔值、null 或 undefined,先使用 Number() 转成数值;
var result1 = 5 - "1"; // 4
var result2 = 5 - null; // 5

关系操作符

关系操作符有:小于 <、大于 >、小于等于 <=、大于等于 >=;用于对两个值比较;

var result1 = 2 > 1;

特殊值处理规则:

  • 两个操作数都是字符串,比较两个字符串对应的字符编码值;
  • 一个操作数是布尔值,先转换为数值,再执行比较;

相等操作符

相等和不相等——先转换在比较,全等和不全等——仅比较而不转换;

1. 相等不相等

相等操作符由两个等于号 == 表示,不相等操作符由叹号后跟等于号 != 表示;

基本规则:

  • 有一个操作数是布尔值,先转换为数值,false 转换为0,true 转换为1;
  • 有一个操作数是字符串,另一个是数值,先将字符串转换为数值;
  • nullundefined 是相等的;
  • NaNNaN 是不相等的;
表达式
null == undefinedtrue
"NaN" == NaNfalse
5 == NaNfalse
NaN == NaNfalse
NaN != NaNtrue
false == 0true
true == 1true
true == 2false
undefined ==0false
null == 0false
"5" == 5true
2. 全等和不全等

全等操作符由3个等于号 === 表示,不全等操作符有一个叹号和两个等于号 !== 表示;

var result1 = ("10" == 10); // true
var result2 = ("10" === 10); // false,数据类型不相同