Javascript 将变量的值更改为可能已存在的值

Javascript 将变量的值更改为可能已存在的值,javascript,variables,Javascript,Variables,如果我想给一个变量一个可能已经存在的值,我应该检查它是否存在并避免不必要的覆盖,还是应该只进行检查并避免检查?因此(这里使用JavaScript),哪个选项对处理器来说工作量较小: foo = "foo"; //foo might already be set to "foo" 或 这里需要注意两件事:首先,当我目前正在使用JavaScript时,如果其他语言不同,我会对它们的答案感兴趣;其次,我很可能会处理比“foo”长得多的字符串。简单赋值总是比条件检查花费更少。尽管如此,这是如此微小,以

如果我想给一个变量一个可能已经存在的值,我应该检查它是否存在并避免不必要的覆盖,还是应该只进行检查并避免检查?因此(这里使用JavaScript),哪个选项对处理器来说工作量较小:

foo = "foo"; //foo might already be set to "foo"


这里需要注意两件事:首先,当我目前正在使用JavaScript时,如果其他语言不同,我会对它们的答案感兴趣;其次,我很可能会处理比“foo”长得多的字符串。

简单赋值总是比条件检查花费更少。尽管如此,这是如此微小,以至于它真的不重要

如果您只想将某个值分配给
foo
的东西,则可能使用逻辑或(
;<
)来执行以下操作:

var foo;
// ... some code that may initialize foo ...
foo = foo || 'someDefault';
请注意,如果它有任何“false”值,那么它也将默认为
foo
0
、空字符串、
NaN
null
、未定义的
false
。如果这些值是可接受的,那么您应该将
typeof
与第三语句一起使用:

var foo;
// ... some code that may initialize foo ...
foo = typeof foo === 'undefined' ? 'someDefault' || foo;

可以将变量设置为它可能已经设置为的值

foo = "foo";

你想干什么?我认为我们需要更多的上下文,这可能取决于情况……你总是希望foo等于‘foo’?或者,当且仅当foo未定义时,您想将其设置为“foo”吗?设置它,然后忘记它。这种级别的微优化简直是胡说八道。@danronmoon如果它还不等于“foo”,我想将其设置为“foo”。@Bluefire:设置变量比比较字符串快得多。
foo = "foo";