2 回答
TA贡献1829条经验 获得超6个赞
使用声明的变量let
的范围是包含它的最内部代码块。
在您的示例中,有两个不同的变量名为msg
.
第一个 ( let msg = 'message1') is the one printed by
console.log(msg);`。
第二个 (let msg = 'message2') 仅存在于{...}
声明它的块 ( ) 中。它在代码执行离开块时被销毁(在}
)。
在该块内部,命名的外部变量msg
不可用。
没有必要多次声明一个变量(除非你的目的是得到你现在遇到的效果)。在第一次使用之前只声明一次。
此代码按预期工作:
let values = true;
let msg = 'message1';
if (values) {
msg = 'message2';
}
console.log(msg);
您可以console.log()在if块内添加调用以检查它是否已执行(因为条件是true):
let values = true;
let msg = 'message1';
if (values) {
let msg = 'message2';
console.log('inner: ' + msg);
}
console.log('outer: ' + msg);
TA贡献2039条经验 获得超7个赞
声明没有问题if。它运行正常,但问题是您msg再次定义了变量let msg = 'message2';
那应该替换为msg = 'message2',它将起作用。
let values = true;
let msg = 'message1';
if(values) {
msg = 'message2';
}
console.log(msg);
添加回答
举报