使用"variable = NEWVAR || variable;"保留原始值

Keep original value with "variable = NEWVAR || variable;"

本文关键字:variable quot 原始 保留 使用 NEWVAR      更新时间:2023-09-26

如果新值未定义,这是更新变量并保持原始值的合法方法吗?

variable = NEWVAR || variable;

我创建了一个小提琴,到目前为止它看起来很好,但我不想得到任何令人讨厌的惊喜。

下面是一个测试用例:

var test = "hello";
test = undefined || test;
alert('"' + test + '"');

我会说,是的,我经常使用它。但是你必须记住

Douglas Crockford: Javascript The Good Parts (p. 40)

如果第一个操作数为真,则产生其第一个操作数的值。否则,它会产生第二个操作数的值

如果NEWVAR包含假值(false, null, undefined, NaN, 0, ""),则计算第二个操作数

只要你意识到这一点,你总是可以使用||运算符来获得默认值

Douglas Crockford: Javascript The Good Parts (p. 51)

可以使用操作符来填充默认值:

var middle = stooge["middle-name"] || "(none)";
var status = flight.status || "unknown";

是,不是。它在技术上是有效的,但您必须小心假值,因为如果NEWVAR0false""或任何其他假值,它将不会被分配。更明智的方法是检查是否定义了NEWVAR,也许可以使用三级操作符:

variable = (typeof NEWVAR === "undefined") ? variable : NEWVAR;