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