出现bug,解决BUG,对于前端开发人员来说,是件最普通的事情了。那么出现错误提示:ReferenceError: can't access lexical declaration`X' before initialization。其实这个报错信息很不常见哟,我们来分析分析。
出错地方
词法变量在初始化之前被访问。该错误可以发生于任何语句块中,当使用 let 或 const 修饰的变量在初始化之前被访问的时候。
示例
错误情况
在这个例子中,变量 "foo" 在语句块中再次声明,导致未初始化。
function test(){ let foo = 33; if (true) { let foo = (foo + 55); // ReferenceError: can't access lexical declaration `foo' before initialization } } test();
正确情况
在 if 语句块中修改变量 "foo" 的值,不应该在其中进行二次声明。
function test(){ let foo = 33; if (true) { foo = (foo + 55); } } test();
原来是变量申明的问题呢,您知道了吗?
网友评论文明上网理性发言 已有0人参与
发表评论: