JS: export导出的变量在页面内使用并被修改后,原文件也被修改了

脚本和模块:

js有两种源文件,一种叫做脚本,一种叫做模块。

脚本是浏览器和node环境引入的,而模块只能由js代码用import引入(模块机制)。可以理解为:脚本具有主动性,而模块是被动性,等待被调用的库。

import声明:

第一种用法:直接import一个模块, 例:import "test"

直接引入模块,只能保证该模块被执行,但不能获取到信息;

第二种用法:带from的import,例:import  a  from "test"

可以把他们变成本地变量,还有其他写法。

 

import x from "./a.js" 引入模块中导出的默认值。
import {a as x, modify} from "./a.js"; 引入模块中的变量。
import * as x from "./a.js" 把模块中所有的变量以类似对象属性的方式引入。
  • 独立使用 export 声明就是一个 export 关键字加上变量名列表,例如:export {a, b, c};
  • export 还有一种特殊的用法,就是跟 default 联合使用。export default 表示导出一个默认变量值,它可以用于 function 和 class。这里导出的变量是没有名称的,可以使用import x from "./a.js"这样的语法,在模块中引入。export default 还支持一种语法,后面跟一个表达式, 

  例如:

var a = {};
export default a;

  但是,这里的行为跟导出变量是不一致的,这里导出的是值,导出的就是普通变量 a 的值,以后 a 的变化与导出的值就无关了,修改变量 a,不会使得其他模块中引入的 default 值发生改变。

export和export default区别:

1. 他们都可以导出常量,函数,文件,模块等。

2.你可以在其他模块或者文件中通过import +名称 的方式,将其导入,以便可以对其使用。

3.在一个文件或者模块中,export ,import可以有很多,export deault只能有一个。

4. 通过export导出时,在导入时需要加{},export default则不需要。

 

posted @ 2021-11-08 20:16  阿兰儿  阅读(3146)  评论(0编辑  收藏  举报