javascript怎么引用js文件
- 后端开发
- 2025-07-09
- 3871
JavaScript中引用其他JS文件有多种方法,以下为您详细介绍:
使用<script>标签引用
| 方式 | 说明 | 示例 |
|---|---|---|
| 基本用法 | 在HTML文件中,通过<script>标签的src属性指定要引用的JS文件路径,浏览器会按照<script>标签在HTML中出现的顺序依次加载和执行这些脚本。 |
“`html |
<!DOCTYPE html>
引用JS文件示例
“` |
| 使用`defer`属性 | `defer`属性会使脚本在HTML文档完全解析后执行,但会在DOMContentLoaded事件之前执行,这样可以确保脚本在操作DOM元素时,元素已经加载完毕,避免因DOM未加载完成而导致的错误。 | “`html
引用JS文件示例
“` |
| 使用`async`属性 | `async`属性会使脚本一旦下载完成就立即执行,而不管HTML文档是否解析完成,这种方式适用于不需要等待HTML文档解析完毕就可以执行的脚本,比如一些异步加载的模块或功能。 | “`html
引用JS文件示例
“` |
ES6模块化引用
ES6引入了模块化语法,通过import和export可以轻松地在JS文件中引用其他JS文件。
导出模块(export)
在需要被引用的JS文件中,使用export关键字导出变量、函数或类等。

// file1.js
export const name = 'John';
export function greet() {
console.log('Hello, ' + name);
}
导入模块(import)
在需要引用其他JS文件的文件中,使用import关键字导入相应的模块。
// file2.js
import { name, greet } from './file1.js';
console.log(name); // 输出:John
greet(); // 输出:Hello, John
CommonJS模块引用(主要用于Node.js环境)
在Node.js环境中,通常使用CommonJS模块系统,通过require和module.exports进行引用和导出。
导出模块(module.exports)
在需要被引用的JS文件中,使用module.exports导出对象、函数或变量等。
// file1.js
function add(a, b) {
return a + b;
}
const PI = 3.14159;
module.exports = { add, PI };
导入模块(require)
在需要引用其他JS文件的文件中,使用require函数导入相应的模块。

// file2.js
const { add, PI } = require('./file1.js');
console.log(add(2, 3)); // 输出:5
console.log(PI); // 输出:3.14159
动态加载JS文件
有时候我们需要在运行时动态加载JS文件,可以使用document.createElement方法创建<script>标签,并将其添加到文档中。
function loadScript(url) {
return new Promise((resolve, reject) => {
const script = document.createElement('script');
script.src = url;
script.onload = () => resolve();
script.onerror = () => reject(new Error(`Failed to load script ${url}`));
document.head.appendChild(script);
});
}
// 使用示例
loadScript('path/to/your/script.js')
.then(() => {
console.log('Script loaded successfully');
})
.catch((error) => {
console.error(error);
});
Webpack打包工具引用
Webpack是一款强大的模块打包工具,它可以将多个JS文件打包成一个或多个文件,方便在浏览器中加载。
配置Webpack
需要创建一个webpack.config.js文件,并进行简单配置。
// webpack.config.js
const path = require('path');
module.exports = {
entry: './src/index.js', // 入口文件
output: {
filename: 'bundle.js', // 输出文件名
path: path.resolve(__dirname, 'dist') // 输出目录
},
mode: 'development' // 开发模式,可设置为'production'进行生产环境优化
};
打包并引用
在package.json中添加打包命令,然后运行命令打包,打包完成后,在HTML文件中只需要引用bundle.js即可。

// package.json
{
"name": "my-project",
"version": "1.0.0",
"scripts": {
"build": "webpack"
},
"devDependencies": {
"webpack": "^5.0.0",
"webpack-cli": "^4.0.0"
}
}
npm run build
<!DOCTYPE html>
<html>
<head>Webpack示例</title>
<script src="dist/bundle.js"></script>
</head>
<body>
</body>
</html>
相关问答FAQs
问题1:在使用<script>标签引用JS文件时,如何确保脚本的加载顺序?
回答:在HTML文件中,<script>标签的出现顺序决定了脚本的加载和执行顺序,如果多个脚本之间存在依赖关系,需要确保被依赖的脚本先加载,如果file2.js依赖于file1.js中的代码,那么在HTML中应该先引用file1.js,再引用file2.js,也可以使用defer或async属性来控制脚本的加载和执行时机,但需要注意它们的执行特点和适用场景。
问题2:ES6模块化和CommonJS模块化有什么区别?
回答:ES6模块化和CommonJS模块化是两种不同的模块系统,主要有以下区别:
- 语法不同:ES6模块化使用
import和export关键字进行导入和导出,而CommonJS使用require和module.exports。 - 加载机制不同:ES6模块化是静态加载,在代码编译阶段就会确定模块的依赖关系;而CommonJS是动态加载,在代码运行时才会加载模块。
- 应用场景不同:ES6模块化主要应用于浏览器环境和现代的前端开发框架中;CommonJS主要应用于Node.js环境
