[英]Chrome debugger showing wrong values
我在Chrome Ubuntu(版本68.0.3440.106 64位)上调试js代码,并且我注意到调试器给了我错误的值,即使我通过添加监视表达式条目来监视该值也是如此。
for (let i = 0; i < visibility.show.or.length; ++i) {
const currentVisibilityContext = visibility.show.or[i];
}
但是如果我使用var
而不是let
工作正常
for (var i = 0; i < visibility.show.or.length; ++i) {
const currentVisibilityContext = visibility.show.or[i];
}
有人可以向我解释这种行为吗? 非常感谢你。
用var关键字声明的变量不能具有“块作用域”。
可以从块外部访问在{}内部声明的变量。
例
{
var x = 2;
}
// x CAN be used here
在ES2015之前,JavaScript没有Block Scope。
用let关键字声明的变量可以具有Block Scope。
在块{}中声明的变量不能从该块外部访问:
例
{
let x = 2;
}
// x can NOT be used here
从W3schools ofc复制而没有问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.