使用"variable = NEWVAR || variable;"保留原始值
Keep original value with "variable = NEWVAR || variable;"
如果新值未定义,这是更新变量并保持原始值的合法方法吗?
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";
是,不是。它在技术上是有效的,但您必须小心假值,因为如果NEWVAR
是0
、false
、""
或任何其他假值,它将不会被分配。更明智的方法是检查是否定义了NEWVAR
,也许可以使用三级操作符:
variable = (typeof NEWVAR === "undefined") ? variable : NEWVAR;
相关文章:
- 铬:“;未捕获的语法错误:意外的标记:"
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 从jQuery调用存储在Variable中的函数
- 使用“+="操作人员
- //而不是在src=“”上使用http://"属性
- "未捕获的语法错误:意外的标记}"
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- "实例范围”;TypeScript类的getter/setter
- Javascript复选框函数:;缺少:在属性id之后"
- "“;变量未引用正确的对象
- "日期“;AJAX请求返回的类型值未定义
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- "工具提示"jQuery插件坏了
- "锻造;React中的表达式
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- 如何提取“;href"最近列表项中的属性值
- CKEditor如何允许href="javascript:void(0)"在小部件中