ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# ES6中如何导入和导出模块 在node中导入导出模块 ``` <pre class="calibre10">``` <span class="token">//导出(向外暴露成员)</span> module<span class="token3">.</span>exports <span class="token1">=</span> <span class="token3">{</span><span class="token3">}</span> <span class="token">//导入</span> var 名称 <span class="token1">=</span> <span class="token4">require</span><span class="token3">(</span><span class="token2">'模块标识符'</span><span class="token3">)</span> ``` ``` 在JavaScript ES6中,export与export default均可用于导出常量、函数、文件、模块等 ## **在ES6中导出模块(向外暴露成员)** ``` <pre class="calibre10">``` <span class="token">//使用export default 和 export 向外暴露成员</span> <span class="token">//在一个模块中,export default 只允许向外暴露一次,即在test.js只能存在一次export default</span> <span class="token">// test.js</span> export default <span class="token3">{</span> name<span class="token3">:</span> <span class="token2">'zs'</span><span class="token3">,</span> age<span class="token3">:</span> <span class="token6">20</span> <span class="token3">}</span> <span class="token">//或者</span> var info <span class="token1">=</span> <span class="token3">{</span> name<span class="token3">:</span> <span class="token2">'zs'</span><span class="token3">,</span> age<span class="token3">:</span> <span class="token6">20</span> <span class="token3">}</span> export default info ``` ``` ## **ES6中导入模块** ``` <pre class="calibre10">``` import <span class="token1">*</span><span class="token1">*</span><span class="token1">*</span> from <span class="token1">*</span><span class="token1">*</span><span class="token1">*</span> import person from <span class="token2">'./test.js'</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>person<span class="token3">)</span><span class="token3">;</span><span class="token">//{age:20,name:'zs'}</span> ``` ``` 在上面ES6导出模块除了export default 还可以使用export导出模块,且export可在导出多次 ``` <pre class="calibre10">``` export var name<span class="token1">=</span> <span class="token2">'zs'</span> export var age <span class="token1">=</span><span class="token6">20</span> <span class="token">//导出函数</span> export <span class="token5">function</span> <span class="token4">func</span><span class="token3">(</span>b<span class="token3">)</span><span class="token3">{</span> <span class="token5">return</span> b<span class="token1">+</span><span class="token6">1</span> <span class="token3">}</span> export let words <span class="token1">=</span> <span class="token2">'hello world!!!'</span> <span class="token">//export function output() { }</span> ``` ``` 接收export导出的模块 ``` <pre class="calibre10">``` import <span class="token3">{</span>name<span class="token3">,</span> age as age1<span class="token3">,</span> func<span class="token3">,</span>words<span class="token3">}</span> from <span class="token2">'./test.js'</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>name<span class="token1">+</span> <span class="token2">'======='</span> <span class="token1">+</span> age1<span class="token3">)</span><span class="token3">;</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span><span class="token4">func</span><span class="token3">(</span><span class="token6">6</span><span class="token3">)</span><span class="token3">)</span><span class="token3">;</span><span class="token">//7</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>words<span class="token3">)</span><span class="token3">;</span><span class="token">//'hello world!!!</span> ``` ``` export default 与export可以在同一模块同时导出 ``` <pre class="calibre10">``` <span class="token">// test.js</span> var info <span class="token1">=</span> <span class="token3">{</span> name<span class="token3">:</span> <span class="token2">'zs'</span><span class="token3">,</span> age<span class="token3">:</span> <span class="token6">20</span> <span class="token3">}</span> export default info export var title <span class="token1">=</span> <span class="token2">'小星星'</span> export var content <span class="token1">=</span> <span class="token2">'哈哈哈'</span> ``` ``` 接收test.js导出的模块 ``` <pre class="calibre10">``` import person<span class="token3">,</span> <span class="token3">{</span>title<span class="token3">,</span> content as content1<span class="token3">}</span> from <span class="token2">'./test.js'</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>person<span class="token3">)</span><span class="token3">;</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>title <span class="token1">+</span> <span class="token2">'======='</span> <span class="token1">+</span> content1<span class="token3">)</span><span class="token3">;</span> ``` ``` **export default的变种方式** 如果不使用export default ,使用如下指令也可以。 let是当前作用域下声明变量 ``` <pre class="calibre10">``` let info<span class="token1">=</span><span class="token3">{</span> name<span class="token3">:</span><span class="token2">'zx'</span><span class="token3">,</span> age<span class="token3">:</span><span class="token6">20</span> <span class="token3">}</span> <span class="token4">export</span><span class="token3">(</span>info<span class="token3">)</span><span class="token3">;</span> ``` ``` 注意: 在HTML中 1、在html页面中导入导出需要将javascript 的type改为module 2、导入的是export default{}由于一个模块只能有一个所以不能加{} 3、导入时需要加.js ``` <pre class="calibre17">``` <span class="token">// test.js</span> <span class="token">//默认输出</span> export default <span class="token3">{</span> name<span class="token3">:</span> <span class="token2">'dash'</span><span class="token3">,</span> sayHi<span class="token3">:</span> <span class="token5">function</span><span class="token3">(</span><span class="token3">)</span> <span class="token3">{</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span><span class="token2">"Hi!"</span><span class="token3">)</span><span class="token3">;</span> <span class="token3">}</span> <span class="token3">}</span> <span class="token">// test.html 需要加module</span> <span class="token1"><</span>script type<span class="token1">=</span><span class="token2">"module"</span> src<span class="token1">=</span><span class="token2">"./test.js"</span><span class="token1">></span><span class="token1"><</span><span class="token1">/</span>script<span class="token1">></span> <span class="token1"><</span>script type<span class="token1">=</span><span class="token2">"module"</span><span class="token1">></span> <span class="token">//导入模块 错误方法export default时不能加{}</span> import <span class="token3">{</span>user<span class="token3">}</span> from <span class="token2">'./test.js'</span><span class="token3">;</span> <span class="token">//导入模块正确的方法(.html必须加上.js后缀 .js中导入则不需要这个?)</span> import user from <span class="token2">'./test.js'</span><span class="token3">;</span> <span class="token">//引用模块中的变量和方法</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>user<span class="token3">.</span>name<span class="token3">)</span><span class="token3">;</span> user<span class="token3">.</span><span class="token4">sayHi</span><span class="token3">(</span><span class="token3">)</span><span class="token3">;</span> <span class="token1"><</span><span class="token1">/</span>script<span class="token1">></span> ``` ```