js学习-day01

转换为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

 

运算符的优先级

 

posted @ 2019-07-07 11:15  进击的小laufen  阅读(156)  评论(0编辑  收藏  举报