我正在深入学习JavaScript,在这个过程中遇到了一些棘手的问题,我正在努力理解它。这只是为了学习目的,如果有人知道发生了什么,请解释一下背后的原因。
请看下面的输出以了解我的关注点!
console.log(Number([])) // 0
console.log(Number([1])) // 1
上述输出是有意义的,因为[]
为空时,它会被转换为0,如果有值,则只转换为第一个索引中所包含的值。
console.log(Number(![])) // 0
console.log(Number(!0)) // 1 (not sure why)
console.log(Number([3,5])) // NaN (Not sure why)
上面的三个输出让我很困惑,我不知道发生了什么。有人能解释一下其中的原理吗?