##逻辑运算符
&& || !
* 其他类型转boolean
1、number:0或NaN为假,非0为真
2、string:除了空字符串(""),其他都是true
3、null&undefined:都是false
4、对象:所有对象都是true
代码示例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>比较运算符</title> <!-- 逻辑运算符: &&:与(短路) ||:或(短路) !:非 * 其他类型转boolean: 1、number:0或NaN为假,非0为真 2、string:除了空字符串(""),其他都是true 3、null&undefined:都是false 4、对象:所有对象都是true --> <script> var flag = 3; document.write(flag+"<br>"); document.write(!flag+"<br>"); document.write("<hr>"); /*number*/ var num = 3; var num2 = 0; var num3 = NaN; document.write(!!num+"<br>"); document.write(!!num2+"<br>"); document.write(!!num3+"<br>"); document.write("<hr>"); /*string*/ var str1 = "abc"; var str2 = ""; document.write(!!str1+"<br>"); document.write(!!str2+"<br>"); document.write("<hr>"); /*null&undefined*/ var obj1 = null; var obj2 = undefined; document.write(!!obj1+"<br>"); document.write(!!obj2+"<br>"); document.write("<hr>"); var date = new Date(); document.write(!!date); </script> </head> <body> </body> </html>
##三元运算符
? :表达式
* 语法:
* 表达式 ? 值1:值2;
* 判断表达式的值,如果是true则取值1,如果是false则取值2。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>三元运算符</title> </head> <script> var a =3; var b = 4; var c = a > b ? 1:2; alert(c) </script> <body> </body> </html>
##一元运算符:只有一个运算数的运算符
++,--,+(正号)
++ -- :自增(自减)
* ++(--)在前,先自增(自减)再运算
<script> var num = 3; var a = ++ num; document.write(num+"<br>");//4 document.write(a);//4 </script>
* ++ (--)在后,先运算,再自增(自减)
<script> var num = 3; var a = num ++; document.write(num+"<br>");//4 document.write(a);//3 </script>
* +(-):正负号
* 注意:在JS中,如果运算数不是运算符所要求的类型,那么JS的引擎会自动将运算数进行类型转换
* 其他类型转number:
* string转number:按照字面值进行转换。如果字面值不是数字,则转为NaN(不是数字的数字)
<script> var b = +"123"; document.write(typeof (b));/*number*/ var c = +"abc"; document.write(c);/*NaN*/ </script>
* boolean转number:true转为1,false转为0
##算数运算符
+ - * / % ...
<script> var a = 3; var b = 4; document.write(a+b+"<br>");//7 document.write(a-b+"<br>");//-1 document.write(a*b+"<br>");//12 document.write(a/b+"<br>");//0.75 document.write(a%b+"<br>");//3 </script>
##赋值运算符
== += -= ...
##比较运算符
> < >= <= == ===(全等于)
* 比较的方式
1、类型相同:直接比较
* 字符串:按照字典顺序比较。按位逐一比较,直到得出大小为止。
<script> document.write(3 > 4 + "<br>");//false document.write(("abc" > "acb") + "<br>");//false </script>
2、类型不同:先进行类型转换,在进行比较
* ===:全等于。在比较之前,先判断类型,如果类型不一样,直接返回false。
<script> document.write(("123" > 123) + "<br>");//false 先把"123"进行类型转换,在比较 document.write(("123" == 123) + "<br>");//true 先把"123"进行类型转换,在比较 document.write(("123" === 123) + "<br>");//false </script>