let 和 const 在作用域内都只能声明一次,再次声明会报错。所以在 Console 里测代码,一般都加个 IIFE 包一下,比如
(() => {
let a = 1;
})();
把 a 封装在一个 IIFE 的块级作用域里。下次再贴同样的代码(或稍做改动)测试时就不会报“already beed declared”了
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
let
受作用域的影响。你的测试环境是在 chrome devtools 中使用,遇到这种情况只会是当前环境中已经申明了这个变量。可以输出window.a
检查全局变量是否存在。因此我推测是你原本在测试时用

var
声明了变量,清除日志后又想到用 let 声明该变量。但 devtools 的清除日志并不会清除之前声明变量,因此重新刷新一下页面即可。