为什么if (false)语句中的代码被读取
Why had code inside if (false) statement been read?
我想要实现的:如果出现问题(if (false)
),重新定义对象A
。然后,创建新的变量a
,分配给A
。
class A {
}
class B {
}
class C {
constructor() {
if (false) {
console.log('hit'); // never hit to
var A = B
}
var a = A;
console.log(a) // undefined
}
}
var c = new C();
我不确定var A = B
行是否被执行,但如果我删除if
语句,console.log(a)
将打印:
class A {
}
我的问题:为什么我在console.log(a)
行中得到undefined
?
函数中的所有var
语句,无论它们出现在哪里,都被视为它们出现在函数的顶部。因此,您的函数被完全解释为如下所示:
class C {
constructor() {
var a, A;
if (false) {
console.log('hit'); // never hit to
A = B
}
a = A;
console.log(a) // undefined
}
}
因此,由于变量a
和A
在var
声明中的构造函数某处出现,因此它们在整个函数中声明。已声明变量的初始化在var
声明实际出现的地方求值。
相关文章:
- 从桌面读取python文件时高亮显示代码
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 有什么工具可以轻松读取javascript代码吗
- 从.js文件中读取所有代码并插入到 Jade 模板中
- 咕噜声.js无法读取文件(错误代码:EISDIR)
- 更改代码以读取不同的 JSON 格式
- Javascript:是否可以读取外部脚本的原始代码
- 如何从 Duktape 中运行的 JavaScript 代码中读取文件
- 未捕获的类型错误:无法读取 null 的属性“选项” - 某些代码有效
- 读取URL参数时,代码未获得预期值
- 将PHP代码转换为Javascript,将数字读取为句子
- 在网页中以文本(原始)形式从GitHub读取代码
- 在打印代码中不读取Css
- I'我得到了一个“;类型错误:无法读取未定义的“”的属性;在这行代码中
- 如何读取钛合金中的当地国家/地区电话代码xml
- 为什么我会收到错误:未捕获的类型错误:无法使用此代码读取 null 的属性“top”
- 使用ZXing条形码扫描仪将代码读取到网页上的表单中
- Javascript修改代码读取修改的对象
- 使用javascript更改标签文本,并从后面的代码读取它
- 如何使用JS代码读取文本文件