在我的JavaScript代码,并在Chrome浏览器开发工具,我写:A = b || “富”;抱怨'b'是未定义的并且没有分配给“foo”。我错过了什么?
a = b || "foo";
而得到这个错误:
ReferenceError: b is not defined
而一个没有被设置为 “富”。我知道这是JavaScript中的有效模式。我错过了什么?
在我的JavaScript代码,并在Chrome浏览器开发工具,我写:A = b || “富”;抱怨'b'是未定义的并且没有分配给“foo”。我错过了什么?
a = b || "foo";
而得到这个错误:
ReferenceError: b is not defined
而一个没有被设置为 “富”。我知道这是JavaScript中的有效模式。我错过了什么?
这就是而不是 JavaScript中的一个有效模式。它仅在存在b
的情况下有效,例如
function test(b) {
var a = b || "foo";
};
该死的你比我快! – A1rPun
谢谢。完全意义。不像我! –
如果的值的值为b
的值为undefined
,那么您的模式可以。
如果变量b
可能是没有定义的,它是一个error尝试读取它,因此它是一个更复杂一点:
a = typeof b!=="undefined" ? b : "foo";
小心b||something
,即使你知道的变量定义(这是最常见的情况):大多数情况下,您希望提供一个默认值来替换undefined
,但不会阻止呼叫方通过0
或""
,因此通常会更安全地执行b!==undefined ? b : "foo"
。
我的投票用尽了,否则我只会提出这个只有:( – thefourtheye
@thefourtheye猜猜,谁 – nicael
@thefourtheye什么?你可以用尽你的选票吗? –
“我没有足够的咖啡吗?”我们怎么知道...你有这种感觉吗?比喝更多。 – nicael
'var a = window.b || “foo”;'.. if'b'是全局变量.. –
@Mr_Green如果变量在另一个范围内? –