File size: 3,844 Bytes
08aee07
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>一元运算符</title>
    </head>
    <body>
        <script>
        /* 1. 一元运算符:只有一个运算数的运算符
					++,-- , +(正号)
					* ++ --: 自增(自减)
						* ++(--) 在前,先自增(自减),再运算
						* ++(--) 在后,先运算,再自增(自减)
					* +(-):正负号
				    * 注意:在JS中,如果运算数不是运算符所要求的类型,那么js引擎会自动的将运算数进行类型转换
                        * 其他类型转number:
                            * string转number:按照字面值转换。如果字面值不是数字,则转为NaN(不是数字的数字)
                            * boolean转number:true转为1,false转为0 */
        var num = 3;
        var a = num ++;
        document.write(num + "<br/>"); // 4
        document.write(a + "<br/>"); // 3
        document.write("<hr/>");

        var b = -"123";
        document.write(b + "---" + typeof(b) + "<br/>");
        var b2 = -"abc";
        document.write(b2 + "---" + typeof(b2) + "<br/>");
        document.write("<hr/>");

        var flag1 = +true;
        var flag2 = false;
        document.write(flag1 + "---" + typeof(flag1) + "<br/>");
        document.write(flag2 + "---" + typeof(flag2) + "<br/>");
        document.write("<hr/>");


		/*	2. 算数运算符
		    	+ - * / % ...  */
		var num1 = 3;
		var num2 = 4;
		document.write(num1 + num2 + "<br/>");
		document.write(num1 - num2 + "<br/>");
		document.write(num1 * num2 + "<br/>");
		document.write(num1 / num2 + "<br/>");
		document.write(num1 % num2 + "<br/>");
		document.write("<hr/>");


		/*  3. 赋值运算符
		    	= += -+....

		    4. 比较运算符
		    	> < >= <= == ===(全等于)
		    	* 比较方式
	              1. 类型相同:直接比较
	                  * 字符串:按照字典顺序比较。按位逐一比较,直到得出大小为止。
	              2. 类型不同:先进行类型转换,再比较
	                  * ===:全等于。在比较之前,先判断类型,如果类型不一样,则直接返回false  */
        document.write((3 > 4) + "<br/>");
        document.write(("abc" < "acd") + "<br/>");
        document.write("<hr/>");

        document.write(("123" == 123) + "<br/>");
        document.write(("123" === 123) + "<br/>");
        document.write("<hr/>");


		/*  5. 逻辑运算符
		    	&& || !
		    	* 其他类型转boolean:
	               1. number:0或NaN为假,其他为真
	               2. string:除了空字符串(""),其他都是true
	               3. null&undefined:都是false
	               4. 对象:所有对象都为true */
	    //boolean
	    var flag3 = false;
	    document.write(flag3 + "<br/>");
	    document.write(!flag3 + "<br/>");

        //number
	    var flag4 = 3;
	    document.write(!!flag4 + "<br/>");
	    var flag5 = NaN;
	    document.write(!flag5 + "<br/>");

        //string
	    var flag6 = "";
	    var flag7 = "abc";
	    document.write(!flag6 + "<br/>");
	    document.write(!flag7 + "<br/>");

	    //null & undefined
	    var flag8 = null;
	    document.write(!flag8 + "<br/>");
	    var flag9;
	    document.write(!flag9 + "<br/>");

	    //对象
	    var date = new Date();
	    document.write(!date + "<br/>");
	    if(date){
	        alert("防止空指针异常");
	    }
	    document.write("<hr/>");


		/*  6. 三元运算符
		    	? : 表达式
		    	var a = 3;
		        var b = 4;

		        var c = a > b ? 1:0;
		    	* 语法:
		    		* 表达式? 值1:值2;
		    		* 判断表达式的值,如果是true则取值1,如果是false则取值2; */
		var a = 3;
		var b = 4;
		var c = a > b? 1:0;
		document.write(c + "<br>");

        </script>
    </body>
</html>