gpt4 book ai didi

javascript - 在 if 语句中使用 undefined variable

转载 作者:可可西里 更新时间:2023-11-01 01:27:56 27 4
gpt4 key购买 nike

此代码段导致 JavaScript 运行时错误:(foo 未定义)

if (foo) {
// ...
}

我必须先定义foo,如下所示:

var foo = foo || null // or undefined, 0, etc.

...只有这样我才能做:

if (foo) {
// ...
}

这是为什么呢?


更新:

这对我来说有点脑残:“当然你不能访问未分配的变量。”

有趣的是,你可以对 undefined variable 执行 typeof()。我要接受 miccet的答案,因为我认为这是最优雅的解决方案。

最佳答案

我感觉到你在问,因为你知道 javascript 似乎在某些情况下(即没有运行时错误)允许 undefined variable ,而在其他情况下则不允许。

推理如下:javascript 总是在检查 undefined variable 时抛出错误,但是从不在检查未定义的属性时抛出错误,只要您只使用一级间接。

例子:

// throws runtime error
if(foo) {
// ...
}

// does not throw runtime error
if(window.foo) {
// ...
}

// does not throw runtime error
var obj = {};
if(obj.foo) {
// ...
}

// throws runtime error
if(obj.foo.bar) { // going two levels deep, but foo is undefined
// ...
}

希望这能稍微澄清一下。

关于javascript - 在 if 语句中使用 undefined variable ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/581470/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com