微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何处理JS中Hoisting导致的未定义错误

如何解决如何处理JS中Hoisting导致的未定义错误

最近接触到了Hoisting的概念,Js在执行之前把所有的变量和函数都安排在程序的顶部。但是我遇到了一个问题,就像我在声明一个变量之前执行它一样。它会导致 undefined 错误,或者您可以说它是提升到该变量所给出的初始值。但是在给它赋值后仍然给出同样的错误

console.log(aVar); // undefined
console.log(aLet); // causes ReferenceError: aLet is not defined
var aVar = 1;
let aLet = 2;

有什么我遗漏或不知道的东西,比如在这里提升的意义是什么。我想知道在不获取未定义值的情况下使用提升的正确方法是什么。

解决方法

这里提升的意义是什么?

向您提供错误消息,而不是在 uninitialised variables 上静默失败。

一般来说,hoisting lets you declare functions that reference the hoisted variables

如何处理未定义的错误?

修复代码中的错误,将 log 语句放在要记录的值的创建之后:

let aLet = 2;
console.log(aLet); // 2

或者如果您想要获得 undefined,请在使用前将声明向上移动:

let aLet; // or: let aLet = undefined;
console.log(aLet); // undefined
aLet = 2;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。