13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

详解JavaScript中的模块、Import和Export

 在互联网的洪荒时代,网站主要用 HTML和 CSS 开发的。如果将 JavaScript 加载到页面中,通常是以小片段的形式提供效果和交互,一般会把所有的 JavaScript 代码全都写在一个文件中,并加载到一个 script 标签中。尽管可以把 JavaScript 拆分为多个文件,但是所有的变量和函数仍然会被添加到全局作用域中。

但是后来 JavaScript 在浏览器中发挥着重要的作用,迫切需要使用第三方代码来完成常见任务,并且需要把代码分解为模块化的文件,避免污染全局命名空间。

ECMAScript 2015 规范在 JavaScript 语言中引入了 module,也有了 import 和 export 语句。在本文中,我们一起来学习 JavaScript 模块,以及怎样用 import 和 export 来组织代码。

模块化编程

在 JavaScript 中出现模块的概念之前,当我们想要把自己的代码组织为多个块时,一般会创建多个文件,并且将它们链接为单独的脚本。下面先举例说明,首先创建一个 index.html 文件和两个JavaScript文件“ functions.js 和 script.js。

index.html 文件用来显示两个数字的和、差、乘积和商,并链接到 script 标签中的两个 JavaScript 文件。打开 index.html 并添加以下代码:

index.html

 

 
 
 
 
  1.  
  2.  
  3.    
  4.      
  5.      
  6.  
  7.     JavaScript Modules 
  8.    
  9.  
  10.    
  11.     

    Answers

     
  12.     

     and 

     
  13.  
  14.     

    Addition

     
  15.     

     
  16.  
  17.     

    Subtraction

     
  18.     

     
  19.  
  20.     

    Multiplication

     
  21.     

     
  22.  
  23.     

    Division

     
  24.     

     
  25.  
  26.      
  27.      
  28.    
  29.  

 

 

这个页面很简单,就不详细说明了。

functions.js 文件中包含将会在第二个脚本中用到的数学函数。打开文件并添加以下内容:

functions.js

 
 
 
 
  1. function sum(x, y) { 
  2.   return x + y 
  3.  
  4. function difference(x, y) { 
  5.   return x - y 
  6.  
  7. function product(x, y) { 
  8.   return x * y 
  9.  
  10. function quotient(x, y) { 
  11.   return x / y 

最后,script.js 文件用来确定 x 和 y 的值,以及调用前面那些函数并显示结果:

script.js

 
 
 
 
  1. const x = 10 
  2. const y = 5 
  3.  
  4. document.getElementById('x').textContent = x 
  5. document.getElementById('y').textContent = y 
  6.  
  7. document.getElementById('addition').textContent = sum(x, y) 
  8. document.getElementById('subtraction').textContent = difference(x, y) 
  9. document.getElementById('multiplication').textContent = product(x, y) 
  10. document.getElementById('division').textContent = quotient(x, y) 

保存之后在浏览器中打开 index.html 可以看到所有结果:

 

对于只需要一些小脚本的网站,这不失为一种有效的组织代码的方法。但是这种方法存在一些问题:

其他资讯

让你的专属顾问为你服务