A=b||“;foo”;;抱怨'b'是未定义的并且不将a分配给“”;foo”;.我错过了什么
A = b || "foo"; complains that 'b' is undefined and does not assign a to "foo". What am I missing?
在我的JavaScript代码和Chrome开发工具中,我编写了:
a = b || "foo";
得到这个错误:
ReferenceError: b is not defined
并且a未设置为"foo"。我知道这是JavaScript中的一个有效模式。我错过了什么?
如果b
的值为undefined
,则您的模式正常。
如果变量b
可能没有定义,那么尝试读取它是一个错误,因此它会稍微复杂一点:
a = typeof b!=="undefined" ? b : "foo";
即使知道变量已定义,也要小心使用b||something
(这是最常见的情况):大多数情况下,您希望提供一个默认值来替换undefined
,而不是阻止调用方传递0
或""
,因此执行b!==undefined ? b : "foo"
通常更安全。
这不是JavaScript中的有效模式。它仅在存在b
的上下文中有效,例如
function test(b) {
var a = b || "foo";
};
相关文章:
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 在循环中分配json值时,值被覆盖
- 动态分配GA增强型电子商务跟踪器
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 如何在jQuery中将函数的输出分配给变量
- 为集合分配大量的模型弹药
- onclick函数需要双击,因为类分配延迟
- Javascript 将变量分配给警报
- 将节点数据分配给另一个变量jstree
- 如何发送分配列表<字符串>到JavaScript数组或可枚举对象
- Javascript变量分配-按类别
- if(foo!==null)的计算结果为true,即使foo为null
- 如何将内容分配给元素
- 为变量分配多个nodejs导出返回值时出现问题
- Jslint 错误:需要条件表达式,而是看到分配
- 为什么可以't我将检索到的文档分配给控制台中的变量
- 将数组的拼接分配给自身时,Javascript控制台打印不起作用
- 渲染<选项值=“;foo”;选择>在服务器上
- TypeScript TS2322:类型'Foo'不可分配给类型'IFoo'
- 什么是“;var FOO=FOO||{}”;(为该变量分配一个变量或一个空对象)在Javascript中的意思