2018-01-11
2018-01-11 本文已影响0人
DLHTX
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方法获取结果