运算符用于执行程序代码运算,在学习运算符之前我们需要先知道什么是隐式转换。
隐式转换
隐式类型转换:也称自动类型转换,是指不需要我们书写代码,由系统自动完成的类型转换。
-
+号一旦遇到字符串就表示拼接 会将+号另一边也转为字符串进行拼接
-
数据类型进行运算的时候会尽量转为数字,并且符合Number的规律(js内置帮我们去转换的,隐式转换)
-
// 字符串类型先隐式转换成数字类型,再进行计算
console.log("2" -1); //2 - 1 =>1
console.log("2.4" - "1");//2.4 - 1=>1.4
// true=>1,false=>0
console.log("100" - true); //100 - 1 =>99
console.log(false - true); //0 - 1 =>-1
运算符
算术运算符
+ - * / %(取余,取模) ++ --
-
数据类型进行运算的时候会尽量转为数字,并且符合Number的规律(js内置帮我们去转换的,隐式转换)
-
+号一旦遇到字符串就表示拼接 会将+号另一边也转为字符串进行拼接
-
++:不管++在前,还是++在后都表示自身加1,如果++在前表示先自身加1再去参与运算,如果++在后,先去参与运算再去自身加1
-
--:不管--在前,还是--在后都表示自身减1,如果--在前表示先自身减1再去参与运算,如果--在后,先去参与运算再去自身减1
-
console.log(10 + 20);//30
console.log(10 + 20 + "2" + 100 + "22");//"30210022"
-
赋值运算符
= (赋值) += -= *= /= %=
var a = 10; //将赋值运算符右边的值赋值到左边
a = 100; //给a重新赋值
console.log(a); //100
a += 10; //<=> a = a + 10;
console.log(a); //110
a -= 10; //=> a = a - 10;
console.log(a); //100
比较运算符
普通比较
== (等于) != (不等于) > >= < <=
-
数据在进行比较的时候,会尽量转为数字进行比较 (隐式转换,符合Number规律)
console.log(10 > 20); console.log("10" > 5); // 10 > 5 =>true console.log("10px" > 5); // NaN > 5 =>false console.log("5" <= "5");//true console.log(true == 1);//1 == 1 =>true console.log(false != true);//0 != 1 console.log(NaN == NaN);//false NaN不等于NaN
-
字符串进行比较,首先是按位比较,当前位先转为ASCII值,再进行比较,如果某一位比较出结果就不再比了
// 0-9 -> 48 - 57 // A-Z -> 65 - 90 // a - z->97 - 122 console.log("10123789798798872131" > "522"); //false console.log("5" <= "5");// true console.log("12823" > "12967"); //false
- null和undefined与其它数据类型都不相等,但是自己等于自己,null等于undefined
console.log(null == 0); console.log(null == false); console.log(undefined == false); console.log(null == null); console.log(undefined == undefined); console.log(null == undefined);
绝对比较
=== 绝对等于 !== 绝对不等于
-
不同数据类型一定不相等
console.log(10 == "10"); console.log(10 === "10");//false console.log(null === false);//false console.log(false !== 0);//true
逻辑运算符
&& (与) ||(或) !(非)
-
&& (与) 表示且的关系 都为真才为真,一假即假
-
根据当前逻辑运算符的规则返回对应位置的值
-
console.log(true && true);//true
console.log(false && true);//false
-
-
||(或) 一个为真即为真,都假即假
-
根据当前逻辑运算符的规则返回对应位置的值
-
console.log(true || true);//true
console.log(false || true);//true
-
-
!(非) 先将当前数据转为布尔值(符合Boolean的规律),然后在进行取反 最后返回一个布尔值
-
console.log(!10); //!true ->false
console.log(!null); //!false ->true
-
三目运算符
三目运算符又称之为问号冒号表达式
语法:条件 ?条件成立执行的代码段:条件不成立执行的代码段;
-
条件 :可以是一个表达式 也可以是单个数据 (自动检测数据的真假)
var score = 50; score >= 60 ?console.log("再接再厉~~"):console.log("三天不吃饭~~~~"); 123 ? console.log("我是真的!"):console.log("我是假的!");