gpt4 book ai didi

javascript - try声明变量的范围

转载 作者:行者123 更新时间:2023-11-30 12:52:37 27 4
gpt4 key购买 nike

查看this code ,在原型(prototype)函数 onDiagram 第 30 行 中,我们有:

proto.onDiagram = function (message, address) {
message = this.arrayBufferToString(message);
try {
var obj = JSON.parse(message);
} catch (e) {
return;
}
if (!obj) {
return;
}
switch (obj.type) {
...

obj 不是本地的 try 吗?预计代码为:

var obj;
try {
obj = JSON.parse(message);
} catch (e) {
...

最佳答案

Would not obj be local to try here?

没有。声明被提升(与所有声明一样)到执行上下文的顶部。正如您在第二个示例中所示,该代码已得到有效解释。在将值分配给 obj 之前,它隐式具有值 undefined

JavaScript(无论如何,ES5)没有 block 作用域,因此不可能在 try block 中包含变量声明。它将始终对封闭函数可见。

关于javascript - try声明变量的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20401271/

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