JS中的运算符包括算术运算符,赋值运算符,关系运算符,逻辑运算符,三目运算符
算术运算符:+ ,- ,* ,/ ,% ,++ ,--
注意:字符和其他类型进行+运算的时候,实质上是字符串连接(变长的过程)!
字符串和其他数据类型,进行非+运算的时候,那么会把字符串转换为number类型,在进行运算。
如果字符串不能转换成number的类型,会返回NaN(表示非number,是number的一个特殊值)
举例:字符串和数值进行加法运算,字符串和数值进行减法运算。
在此举数字与字符串相加的例子如下:
<!-- 算术运算符 -->
<script>
var a = 3;
var b = "ccc";
var c = 1;
console.log(typeof (a + c + b));
console.log(b + a + c);
var x = 911 + 7 + "person";
// typeof x;是一种运算符
console.log(typeof x);//String
console.log(x);//918person
console.log("==========");
</script>
赋值运算符:= , += , -= , *= , /= ,%=
<!-- 赋值运算符 -->
<script>
// 他们两个是相等的
// a += b;
// a = a + b;
</script>
关系运算符:> ,< ,>= , <= , != , == , ===
<!-- 关系运算符 -->
<script>
var a = 10;
var b = "10";
console.log(a == b);//true ==只比较数值是否相等
console.log(a === b);//false ===不仅比较数值是否相等,还要比较数据类型是否相等
console.log("==========");
</script>
逻辑运算符:&&,||,!、
注意:在JS中不要求逻辑运算符两边必须是逻辑值
<!-- 逻辑运算符 -->
<script>
// && 和 || 都有短路的作用
// &&:两边都为true会返回true, 当左边为false的时候就不再执行右边的表达式了
var a = 3;
console.log(0 > a && ++a);//false
console.log(a);
// ||:两边都为false的时候会返回false,当左边为true就不再执行右边的表达式了
var b = 5;
console.log(0 < b || ++b);//true
console.log(b);
// 注意:js中逻辑运算符两边可以不是boolean
// 0,null,undefinded 都被认为是false;其他的都被认为是true
var c = 7;
console.log(0 && ++c);// 0
console.log(null && ++c);// null
console.log(undefined && ++c);// undefined
console.log(c);
</script>
三目运算符:
<!-- 三目运算符 -->
<script>
// 控制台输出最大值
var a = 8;
var b = 10;
console.log(a > b ? a : b);
</script>