2018-01-11

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

==的判断

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

解密

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方法获取结果

你可能感兴趣的:(2018-01-11)