4、操作符
1) 算术运算符
+ - * / %
+= -=
var a = 1;
a += 1; // a = a + 1
console.log(a); // 2
2) 一元运算符
++ 自增
先应用,再自增 a++
var a = 1;
var b = a++;
console.log(a); // 2
console.log(b); // 1
先自增,再应用 ++a
var a = 1;
var b = ++a;
console.log(a); // 2
console.log(b); // 2
-- 自减
先应用,再自减 a--
先自减,再应用 --a
+、- 将其余数据类型转换为数字类型
+
相当于调用了 Number()
var a = 'hello';
var b = +a;
var c = Number(a);
console.log(b); // NaN
console.log(c); // NaN
-
如果是数值,则变为正数 如果是非数值,则跟 + 一样的规定
= 赋值 将 = 左边的值赋值给 = 右边的变量
var a = 1;
3) 比拟运算符
比拟根本数据类型 – 比拟值,比拟援用数据类型 – 比地址
-
== 双等(类型不同会转换再比,大部分转 Number)
null==0 //F null==underfined // T (underfined 衍生自 null) (a=NaN) a==NaN //F NaN 不和任何值相等 --isNaN() 查看值
- != 不等(会主动进行数据类型类的转换,再去比拟数值)
- === 三等 (全等) 多类型判断,类型不同间接 F
-
!== 不等
var a = '1'; var b = 1; console.log(a == b); // true console.log(a != b); // false console.log(a === b); // false console.log(a !== b); // true {}=={} false -- 地址不同 {}==={} false
5.> / >= / < / <=
非数值比拟时先转化为 Number 再比 – 任何值和 NaN 比,后果都为 F
符号两边都是字符串,按位比拟 unicode'11'<'5' --- T 'abc'>'a' --- T 第二位 b 的码 >0
4) 逻辑运算符
&& 与【同真则真,有假则假】– 先转成布尔值再运算,返回原值
如果两个表达式的值都是 true,则返回 true,然而如果有一个表达式的值为 false,则返回 false
短路!!
1. 如果第一个操作数是(null,NaN,undefined,false,0,"")可被转换为 false 的值的时候 -- 返回该值
2. 如果第一个数是 True--- 返回第二个数
var s1 = 8;
var s2 = 'up';
var s3 = '';
var result = s1 && s2; //up
var result2 = s3 && s2; //''
|| 或【同假则假,有真则真】
如果两个表达式的值都为 false,则返回 false,然而如果有一个表达式的值为 true,则返回 true(第一个 T -- 返回 1 值,第一个是 F,返回 2 值)! 非
!true -> false
!false -> true
5) 三目运算符
exp1 ? exp2 : exp3;
如果 exp1 为 true,则整个表达式返回 exp2
如果 exp1 为 false,则整个表达式返回 exp3
var age = 18;
var gender = 'male';
var result = age >= 18 && gender == 'male' ? '满足条件' : '不满足条件';
6) 拼接运算符 +