gpt4 book ai didi

Javascript ES6 export const 与 export let

转载 作者:IT王子 更新时间:2023-10-29 02:38:46 32 4
gpt4 key购买 nike

假设我有一个要导出的变量。有什么区别

export const a = 1;

对比

export let a = 1;

我理解constlet 之间的区别,但是当你导出它们时,有什么区别?

最佳答案

在 ES6 中,import 是导出值的实时只读 View 。因此,当您执行 import a from "somemodule"; 时,无论您如何在模块中声明 a,都无法分配给 a .

但是,由于导入的变量是实时 View ,它们会根据导出中的“原始”导出变量发生变化。考虑以下代码(从下面的引用文章中借用):

//------ lib.js ------
export let counter = 3;
export function incCounter() {
counter++;
}

//------ main1.js ------
import { counter, incCounter } from './lib';

// The imported value `counter` is live
console.log(counter); // 3
incCounter();
console.log(counter); // 4

// The imported value can’t be changed
counter++; // TypeError

如您所见,真正的区别在于 lib.js,而不是 main1.js


总结:

  • 无论您如何在模块中声明相应的变量,您都不能为 import 变量赋值。
  • 传统的 let-vs-const 语义适用于模块中声明的变量。
    • 如果变量被声明为const,它就不能在任何地方重新分配或反弹。
    • 如果变量被声明为let,它只能在模块中被重新赋值(而不是用户)。如果更改,import 编辑的变量会相应更改。

引用: http://exploringjs.com/es6/ch_modules.html#leanpub-auto-in-es6-imports-are-live-read-only-views-on-exported-values

关于Javascript ES6 export const 与 export let,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32558514/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com