转换为Boolean
将其他的数据类型转换为Boolean
使用boolean()函数
数字--》布尔
除了0和NaN,其余的都是true
字符串--》布尔
除了空字符串,其余的都是true
null和undefined都会转换为false
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>转换有Boolean</title> 5 </head> 6 <body> 7 <script type="text/javascript"> 8 var a = 123;//true 9 a = -123;//true 10 a = 0;//false 11 a = infinity;//true 12 a = NaN; 13 14 a = "false";//true 15 a = " ";//true 16 a = "";//false 17 18 a = null;//false 19 a = undefined;//false 20 21 22 // 调用Boolean()函数来将a转换为布尔值 23 a = Boolean(a); 24 console.log(typeof a); 25 console.log(a); 26 </script> 27 </body> 28 </html>
运算符
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>运算符</title> 5 </head> 6 <body> 7 <!-- 运算符也叫操作符 8 通过运算符可以付一个或多个值进行运算 9 比如:typeof就是运算符,可以用来获得一个值的类型,会以该值的类型以字符串形式返回 10 number string boolean undefined object 11 12 13 算数运算符+-*/% 14 当对非Number类型的值进行运算时,会将其转换为数字类型 15 true=1,false=0,null=0,NaN=NaN(任何值和NaN运算都是NaN) 16 17 18 任何的值和字符串进行运算,都需要将数字转换为字符串,再拼串 19 a = 123 + "1"; --》 1231(字符串 20 a = 123 + ""; --》 123 21 (字符串,隐式类型转化,其实是调用了String() 22 23 24 任何值做-*/运算都会转换为number -0 *1 /1都可以 25 var d = '123'; 26 d = d - 0;//将d转换成Number 27 (原理和Number()函数一样 28 29 对于非Number类型的值 30 它会将它先转换为Number,然后再运算 31 可以对一个其他的数据类型使用+,来将其转换为Number 32 他的原理和Number()函数一样 33 d = 1 + + '2' + 3; 34 //6,因为2前面有多一个+,将字符串转换为数字类型 35 --> 36 37 <script type="text/javascript"> 38 var a = 123; 39 var result = typeof a; 40 console.log(result); 41 42 var a = 1 + 2 +'3';//33 43 a = 100 - true;//99 44 a = 2 * '8';//16 45 a = 2 * undefined;//NaN 46 a = 2 * null;//0 47 a = 48 console.log("a =" + a); 49 </script> 50 <script> 51 // 单元运算符 52 var a = 123; 53 a = -a; 54 a = true; 55 a = "18"; 56 a = -a; 57 58 //a = -18 59 //a = -a 60 61 console.log("a="+a); 62 console.log(typef a); 63 </script> 64 </body> 65 </html>
自增自减运算符
<!-- 通过自增可以使变量在自身的基础上增加1 对于一个变量自增以后,原变量的值会立即自增1 自增分成后++(a++和前++(++a 无论是哪种,都会立即使原变量的值自增1 不同的是++a和a++的值不同 b = a++;//a b = ++a;//a+1 result = d++ + ++d + d;//20 + 22 +22 -->
!运算符
&&运算符
||运算符
进一步说明&&和||运算符
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>逻辑运算符</title> 5 </head> 6 <body> 7 <!-- && || 非布尔值的情况 8 对于非布尔值进行与或运算时会将其转换为布尔值,然后再运算,并且返回原值 9 10 与运算 11 如果第一个值为true,则必然返回第二个值 12 如果第一个值为false,则直接返回第一个值 13 14 或运算 15 如果第一个值为true,则必然返回第一个值 16 如果第一个值为false,则直接返回第二个值 17 --> 18 19 <script type="text/javascript"> 20 //true && true 21 var result = 1 && 2;//2 22 result = 2 && 1;//1 23 //与运算,如果两个值都为true则返回后边的数 24 25 //如果有false则返回false,如果两个都是false则返回前边的那个数 26 var result1 = 0 && 2;//0 27 result1 = 2 && 0;//0 28 result1 = NaN && 0;//NaN 29 result1 = 0 && NaN;//0 30 31 //true || true 32 //如果第一个值为true,则直接返回第一个值 33 result = 1 || 2;//1 34 result = 2 || NaN;//2 35 result = 2 || 0;//2 36 37 //如果第一个值为false,则直接返回第二个值 38 result = NaN || 1;//1 39 result = NaN || 0;//0 40 41 42 result = "" || "hello";//hello 43 44 console.log(result); 45 </script> 46 47 </body> 48 </html>
非数值的运算符
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>非数值的关系运算符</title> 5 </head> 6 <body> 7 <!-- 非数值的情况 8 对于非数值进行比较时,会将其转换为数字然后再比较 9 如果符号两侧的值都是字符串 --> 10 11 <script type="text/javascript"> 12 console.log(1 > true);//false 13 console.log(1 >= true);//true 14 console.log(1 > "0");//true 15 console.log(10 > null);//true 16 //任何值和NaN做任何比较都是false
17 console.log(10 <= "hello");//false 18 console.log(true > false);//true
19 //比较两个字符串时,比较的是字符串的字符编码 20 console.log("a" < "b");//true
21 //比较字符编码时是一位一位进行比较 22 console.log("abc" < "b");//true
23 //如果两位一样,则比较下一位,所以借用它来对英文进行排序 24 console.log("abc" < "bcd");//true 25 //比较中文没有意义 26 console.log("戒" < "我");//false 27 28 //所以字符串的比较也是一位一位的 29 console.log("11" < "5");//true 30 31 //如果比较的两个字符串型的数字,可能会得到不可预期的结果。 32 //注意:在比较两个字符串型的数字时,一定一定要转型,即在前面加一个+ 33 console.log(+"12343323124" < +"5");//false 34 </script> 35 </body> 36 </html>
相等运算符==(不相等运算符!=)(===全等,类型不同会直接返回false)
undefined衍生自null
所以这两个值做相等判断时,会返回true
NaN不和任何值相等包括他本身,可以用isNaN()来判断是否是NaN
条件运算符
"hello"?alert('语句1'):alert('语句2); //语句1
运算符的优先级