第23题
1 |
[1 < 2 < 3, 3 < 2 < 1] |
这个题也还可以.
这个题会让人误以为是 2 > 1 && 2 < 3
其实不是的.
这个题等价于
1 2 3 4 |
1 < 2 => true; true < 3 => 1 < 3 => true; 3 < 2 => false; false < 1 => 0 < 1 => true; |
答案是 [true, true]
第24题
1 2 |
// the most classic wtf 2 == [[[2]]] |
这个题我是猜的. 我猜的 true
, 至于为什么…..
both objects get converted to strings and in both cases the resulting string is "2"
我不能信服…
第25题
1 2 3 |
3.toString() 3..toString() 3...toString() |
这个题也挺逗, 我做对了 :) 答案是 error, '3', error
你如果换一个写法就更费解了
1 2 |
var a = 3; a.toString() |
这个答案就是 '3'
;
为啥呢?
因为在 js 中 1.1
, 1.
, .1
都是合法的数字. 那么在解析 3.toString
的时候这个 .
到底是属于这个数字还是函数调用呢? 只能是数字, 因为3.
合法啊!
第26题
1 2 3 4 5 |
(function(){ var x = y = 1; })(); console.log(y); console.log(x); |
答案是 1, error
y 被赋值到全局. x 是局部变量. 所以打印 x 的时候会报 ReferenceError
第27题
1 2 3 4 |
var a = /123/, b = /123/; a == b a === b |
即使正则的字面量一致, 他们也不相等.
答案 false, false
第28题
1 2 3 4 5 6 7 |
var a = [1, 2, 3], b = [1, 2, 3], c = [1, 2, 4] a == b a === b a > c a < c |
字面量相等的数组也不相等.
数组在比较大小的时候按照字典序比较
答案 false, false, false, true
第29题
1 |
[1 < 2 < 3, 3 < 2 < 1] |
这个题也还可以.
这个题会让人误以为是 2 > 1 && 2 < 3
其实不是的.
这个题等价于
1 2 3 4 |
1 < 2 => true; true < 3 => 1 < 3 => true; 3 < 2 => false; false < 1 => 0 < 1 => true; |
答案是 [true, true]
第24题
1 2 |
// the most classic wtf 2 == [[[2]]] |
这个题我是猜的. 我猜的 true
, 至于为什么…..
both objects get converted to strings and in both cases the resulting string is "2"
我不能信服…
第25题
1 2 3 |
3.toString() 3..toString() 3...toString() |
这个题也挺逗, 我做对了 :) 答案是 error, '3', error
你如果换一个写法就更费解了
1 2 |
var a = 3; a.toString() |
这个答案就是 '3'
;
为啥呢?
因为在 js 中 1.1
, 1.
, .1
都是合法的数字. 那么在解析 3.toString
的时候这个 .
到底是属于这个数字还是函数调用呢? 只能是数字, 因为3.
合法啊!
第26题
1 2 3 4 5 |
(function(){ var x = y = 1; })(); console.log(y); console.log(x); |
答案是 1, error
y 被赋值到全局. x 是局部变量. 所以打印 x 的时候会报 ReferenceError
第27题
1 2 3 4 |
var a = /123/, b = /123/; a == b a === b |
即使正则的字面量一致, 他们也不相等.
答案 false, false
第28题
1 2 3 4 5 6 7 |
var a = [1, 2, 3], b = [1, 2, 3], c = [1, 2, 4] a == b a === b a > c a < c |
字面量相等的数组也不相等.
数组在比较大小的时候按照字典序比较
答案 false, false, false, true