不知道如何问这个,但他们在这里尝试做什么?

时间:2015-01-08 11:15:04

标签: javascript

在JS中,他们在下一行中说了什么?

members = members || {};

我被OR运算符弄糊涂了。他们是否说如果成员不为null使其等于成员或创建新对象?

5 个答案:

答案 0 :(得分:2)

它说如果members undefined或" falsey"然后它会将其设置为members,否则它会将其设置为一个新的空JavaScript对象。

如果代码不止一次运行,通常会使用这种类型的代码。通过members的第一次通常是undefined,但随后的时间会有一个您不想丢失的值。

使用这些类型的陈述需要注意的事项:0false等一些真实值会评估为" falsey"条件。在这种情况下,这不是问题。在将来,如果你使用类似的东西,请牢记这一点。任何" falsey"将默认为"另一方" ||声明。在这种情况下,{}

答案 1 :(得分:2)

members = members || {};

这意味着如果成员变量未定义,则members == members其他members == {}

这种情况用于成员返回对象({})然后使用members,如果成员没有返回对象,则使用{}

答案 2 :(得分:2)

它使用Javascripts返回值作为||操作员,这是“返回第一件真正的东西”

因此,在这种情况下,如果成员存在,它将返回成员,否则它将返回{}。

如果设置尚未设置(例如实现函数的默认参数),这是一种快速设置方法

答案 3 :(得分:0)

他们说,如果变量成员不存在,则将其声明为空对象。

如果它存在,请使用它

EDITED: 正如所指出的,成员必须是一个“虚假的”。要重置为空对象的值。 使用这种技术时,如果有成员可以设置为0,空字符串等,请注意。

答案 4 :(得分:0)

这基本上意味着如果成员已经存在使用它,否则创建一个新对象。