If(xx)
1 题目1:如下代码输出什么?
2 if ("hello") {
3 console.log("hello")
4 } //true
5
6 // 题目2:如下代码输出什么?
7 if ("") {
8 console.log('empty')
9 }//false
10
11 // 题目3:如下代码输出什么?
12 if (" ") { 13 console.log('blank') 14 }//true
15 // 题目4:如下代码输出什么?
16 if ([0]) { 17 console.log('array') 18 }//true
19
20 if('0.00'){ 21 console.log('0.00') 22 }//true
23
24 if(+0.00){ 25 console.log('haha') 26 }//false +转换为数字
27
28 if([]){ 29 console.log('haha') 30 }//turn</pre>
==的判断
1 "" == 0 //题目1
2 " " == 0 //题目2
3 "" == true //题目3
4 "" == false //题目4
5 " " == true //题目5!
6 " " == true //题目6
7 !" " == false //题目7
8 "hello" == true //题目8
9 "hello" == false //题目9
10 "0" == true //题目10
11 "0" == false //题目11
12 "00" == false //题目12
13 "0.00" == false //题目13
14 undefined == null //题目14
15 true == true //题目15
16 [] == true //题目16
17 var obj = { 18 a: 0, 19 valueOf: function(){return 1} 20 } 21 obj == "[object Object]" //题目17
22 obj == 1 //题目18
23 obj == true //题目19</pre>
解密
x |
y |
结果 |
null |
undefined |
true |
Number |
String |
x == toNumber(y) |
Boolean |
(any) |
toNumber(x) == y |
Object |
String or Number |
toPrimitive(x) == y |
otherwise |
otherwise |
false |
toNumber
type |
Result |
Undefined |
NaN |
Null |
0 |
Boolean |
ture -> 1, false -> 0 |
String |
“abc” -> NaN, “123” -> 123 |
toPrimitive
对于 Object 类型,先尝试调用 .valueOf 方法获取结果。 如果没定义,再尝试调用 .toString方法获取结果