1
b

if b?

转换为

b;

if (typeof b !== "undefined" && b !== null) 

如果我设置b = [],我得到if (b != null) {

在哪里undefined?在数组中捕获未定义(在唯一之后)是个问题。

当我这样做的时候

a = [1,1,2,2,3,3,4,444,4,4,4]
a.unique()

我可以得到这样的东西:

a = [1,2,3,4,444,undefined]

而且我无法捕捉到这个,因为以防万一a?[key]- 我只检查了!= null

我应该做什么?

4

1 回答 1

2

我没有看到问题。undefined == null在 JavaScript 中为真,undefined != null为假,因此if(b != null)涵盖了这种b === undefined情况。像这样的东西:

a = [ undefined ]
if(a[0]?)
    console.log('if')
else
    console.log('else')

将按else预期在控制台上生成,因此:

a = undefined
if(a?[0])
    console.log('if')
else
    console.log('else')
于 2012-09-24T06:17:15.820 回答