【发布时间】:2021-05-21 17:19:04
【问题描述】:
我遇到了这段代码,但我不明白为什么在声明之前可以在函数组件内部使用 const 变量 myList。
export default function ListComponent(props) {
const listItems = myList.map((item) => <li>{item}</li>);
return <ul>{listItems}</ul>;
}
const myList = ["apple", "orange", "strawberry", "blueberry", "avocado"];
但以下代码会引发错误。这是因为 let 或 const 变量在声明之前不能使用(用 let 和 const 定义的变量被提升到块的顶部,但没有初始化。)。
错误:未捕获的 ReferenceError:在初始化之前无法访问“a”
const b=2;
function test() {
console.log(a);
console.log(b);
}
test();
const a=1;
谁能解释第一个代码是如何工作的?提前致谢!
【问题讨论】:
-
您没有显示如何/何时调用
ListComponent(),但是,这似乎是一个导出函数。当文件被导入/需要时,myList被初始化,然后,ListComponent()被调用。在您的示例中,您在a的声明之前和同一文件中调用test()。
标签: javascript reactjs hoisting