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

时间:2013-01-28 20:01:22

标签: javascript variables

如果我想给一个变量一个它已经有很大机会的值,我应该检查它是否存在并避免不必要的覆盖,或者我应该这样做并避免检查?所以(在这里使用JavaScript),哪个选项对处理器的工作量较少:

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

if(foo != "foo") {
    foo = "foo";
}

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

2 个答案:

答案 0 :(得分:2)

简单分配总是比条件检查更便宜。话虽如此,这是微观的,它确实无关紧要。

如果某些内容稍微复杂一些,如果您只想将某些内容分配给foo,如果它还没有值,您可以使用逻辑或(||)来那样做:

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

请注意,如果它有任何“假名”值,我们也会默认foo0,空字符串,NaNnullundefined,或false。如果这些值是可接受的,那么您希望将typeof替换为第三级语句:

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

答案 1 :(得分:0)

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

foo = "foo";