面试题1
!(!"Number(undefined)") //=> true
注意这是字符串
面试题2
isNaN(parseInr(new Date())) + Number([1]) + typeof undefined// 2undefined
面试题3
Boolean(Number("")) + !isNaN(Number(null)) + Boolean("parseInt([])") + typeof !(null);
/*
* Boolean(Number("")) -> Boolean(0) -> false
* !isNaN(Number(null)) -> !isNaN(0) -> !false -> true
* Boolean("parseInt([])") == Boolean("字符串") -> true
* typeof !(null) -> typeof ture -> “boolean”
* = false + true + true + “boolean” = “2boolean”
*/
布尔值加法运算要转换为数字
面试题4
!!Number(NaN)// flase 其中Number(NaN) = NaN
面试题5
!typeof(isNaN("")) + parseInt(NaN);
!typeof("字符串") // false
Number(NaN)// Number(String(NaN)) = Number("NaN") = NaN
false + NaN // 这里是数学运算 变成了 0 + NaN = NaN
面试题6
typeof !parseInt(null) + !isNaN(null);
!isNaN(null)
//()里如果不是数字,要先转换为数字,即
!isNaN(0)//true
"boolean" + true // => booleantrue