运算符 - 也叫操作符
通过运算符可以对一个或多个值进行运算,并获取运算结果
typeof
获得一个数据的类型,返回值是一个字符串
typeof result;
算术运算符
+,-,*,/,%
当对非Number类型的值进行运算时,会先转换为Number,然后再运算。
result = 123 + 456; // 579
result = true + 1; // 2
result = true + false; // 0
result = 2 + null; // 2
result = 2 + NaN; // NaN
任何值和字符串做加法,都会先转换为字符串,然后再和字符串做拼串
result = "123" + "456"; // "123456" 拼串
result = 123 + "456"; // "123456"
小技巧:数字转字符串,加个空串,其实是调用了String()
函数
一元运算符
正负号
+
正号 - 不会对数字产生任何影响
-
负号 - 可以对数字进行符号取反
- 对非Number的值,先转换为Number,再运算
自增、自减
++
自增
--
自减
console.log(a++); // 输出a原来的值
console.log(++a); // 输出a自增1后的值
逻辑运算符
!
非
- 对非Boolean的值进行运算,先将其转换为Boolean类型,再取非
&&
与
-
若都为
true
,则返回后面的var result = 1 && 2; // 2
-
若都为
false
,则返回前面的
||
或
- 若第一个为
true
,则返回第一个,不会再考虑第二个 - 若第一个为false,则返回第二个
关系运算符
<,>,<=,>=,==,===
-
字符串相比,不会转换为数字,而会分别比较unicode编码
console.log("11"<"5"); // true
可以用此法对英文字符串进行排序
-
==
数值相等即可,例:“1”==1
true,会自动进行类型转换console.log("1" == 1); //true console.log(true == "1"); //true console.log(null == 0); //false
undefined
衍生自null
,所以两者比较时,返回true
NaN
和任何值都不相等,包括它本身
(可以通过isNaN()
函数来判断是否为NaN
) -
===
全等,值和类型完全一样 -
!==
不全等,值或类型不完全一样
条件运算符
三元运算符
条件表达式?语句1:语句2;
true
- 执行语句1
false
- 执行语句2
// 获取a和b中的最大值
var max = a > b? a : b;