JavaScript 笔记(三):运算符
算数运算符
+
任何数据与 NaN 运算,结果均为 NaN,此外,如果任何数据与字符串运算,那么将转换为字符串的拼接
-
*
/
任何数据与 NaN 运算,结果均为 NaN,此外,如果任何数据与字符串运算,那么将字符串转换为数值之后减法运算,如果被除数除以零,那么结果为 Infinity
%
如果被除数除以零,那么结果为 NaN,而结果的正负性取决于被除数的正负性
赋值运算符
- 基本赋值
=
- 复合赋值
+=
-=
*=
/=
%=
自增自减运算符
++
--
关系运算符
>
<
>=
<=
==
!=
任何非数值类型的数据参与关系运算时,均会先转换为数值类型;如果参与运算的数值(或被转换之后的结果)为 NaN,那么结果一定为 false;如果参与关系运算的均为字符串,那么会将 Unicode 编码以字典序来比较,以下是一些特殊的比较结果:
null == 0; // false
undefined == 0; // false
null == undefined; // true
NaN == NaN; // false
根据以上内容,显然不能使用
==
运算符判断一个数值是否为 NaN,如果要判断一个数值是否为 NaN,那么可以使用方法isNaN
来判断,示例如下:
let a = NaN;
let res = isNaN(a);
console.log(res); // true
===
!==
运算符
==
与===
的区别在于,==
仅判断取值是否相同,不会判断类型是否相同,只要取值相同,那么结果就会 true,而===
不仅会判断取值是否相同,也会判断类型是否相同,只有当取值与类型均相同时,结果才会 true,以下是一些示例:
let res = 520 == "520";
console.log(res); // true
res = 520 === "520";
console.log(res); // false
res = 520 != "520";
console.log(res); // false
res = 520 !== "520";
console.log(res); // true
逻辑运算符
&&
||
在运算符
&&
和||
中均存在短路求值现象,即如果左操作数的结果已经可以决定逻辑表达式的结果,那么将不会计算由操作数;此外,如果逻辑运算符两侧的数据不是 Boolean 类型,那么结果会返回相应的数据,而不是 true 或者 false,相应的规则本质上遵循短路求值
!
逗号运算符
,
在 JavaScript 中,逗号运算符一般用于简化代码,示例如下:
let a, b;
a = 5, b = 10;
逗号运算符的运算结果为最后一个表达式(最右侧的表达式)的结果
三目运算符
?: