首页 > 编程语言 >【转】[JavaScript] import 和 export 的用法

【转】[JavaScript] import 和 export 的用法

时间:2025-01-22 16:58:27浏览次数:1  
标签:JavaScript 导出 js export import myModule

转自:kimi.ai

在 JavaScript 中,importexport 是 ES6(ECMAScript 2015)引入的模块化语法,用于在不同的文件或模块之间共享代码。它们使得代码更加模块化、可维护,并且可以避免全局变量的污染。以下是 importexport 的基本用法和一些常见场景。

1. export 的用法

export 用于将模块中的变量、函数或类导出,以便在其他模块中使用。

默认导出(Default Export)

每个模块只能有一个默认导出,通常用于导出模块的主要功能。 JavaScript复制
// myModule.js
const myFunction = () => {
  console.log("Hello, World!");
};

export default myFunction;

命名导出(Named Export)

可以导出多个命名的变量、函数或类。每个命名导出都有一个唯一的标识符。 JavaScript复制
// myModule.js
export const name = "Kimi";
export const age = 25;

function greet() {
  console.log("Hello, I am Kimi.");
}

export { greet };

混合使用默认导出和命名导出

JavaScript复制
// myModule.js
export const name = "Kimi";
export const age = 25;

const myFunction = () => {
  console.log("Hello, World!");
};

export default myFunction;

2. import 的用法

import 用于导入其他模块中导出的内容。

导入默认导出(Default Import)

JavaScript复制
// main.js
import myFunction from "./myModule.js";

myFunction(); // 输出: Hello, World!

导入命名导出(Named Import)

JavaScript复制
// main.js
import { name, age, greet } from "./myModule.js";

console.log(name); // 输出: Kimi
console.log(age);  // 输出: 25
greet();           // 输出: Hello, I am Kimi.

导入所有命名导出(Namespace Import)

如果需要导入模块中的所有命名导出,可以使用命名空间方式: JavaScript复制
// main.js
import * as myModule from "./myModule.js";

console.log(myModule.name); // 输出: Kimi
console.log(myModule.age);  // 输出: 25
myModule.greet();           // 输出: Hello, I am Kimi.

同时导入默认导出和命名导出

JavaScript复制
// main.js
import myFunction, { name, age } from "./myModule.js";

myFunction(); // 输出: Hello, World!
console.log(name); // 输出: Kimi
console.log(age);  // 输出: 25

3. 重命名导入/导出

有时可能需要重命名导入或导出的内容,以避免命名冲突或更清晰地表达意图。

导入时重命名

JavaScript复制
// main.js
import { name as myName, age as myAge } from "./myModule.js";

console.log(myName); // 输出: Kimi
console.log(myAge);  // 输出: 25

导出时重命名

JavaScript复制
// myModule.js
const myName = "Kimi";
const myAge = 25;

export { myName as name, myAge as age };

4. 动态导入(Dynamic Import)

动态导入允许在运行时动态加载模块,通常用于按需加载代码,以优化性能。 JavaScript复制
// main.js
async function loadModule() {
  const myModule = await import("./myModule.js");
  myModule.myFunction();
}

loadModule(); // 动态加载 myModule 并调用 myFunction

5. 注意事项

  • 模块路径:在 import 时,路径需要正确指向模块文件,通常需要包含文件扩展名(如 .js)。
  • 默认导出和命名导出的区别:默认导出需要使用 export default,而命名导出需要使用 exportexport { ... }
  • 模块化工具:在实际项目中,通常会使用构建工具(如 Webpack、Rollup)来处理模块化代码,以便在浏览器中运行。

importexport 是现代 JavaScript 开发中非常重要的特性,它们使得代码更加模块化和可维护。希望这些内容对你有所帮助!

标签:JavaScript,导出,js,export,import,myModule
From: https://www.cnblogs.com/z5337/p/18686421

相关文章

  • JavaScript 自定义获取当前日期和时间的函数
    JavaScript自定义获取当前日期和时间的函数 /***获取当前的日期和时间*格式为yyyy-MM-ddHH:mm:ss.SSS*/functiongetNowDateTime(){varnow=newDate,year=now.getFullYear(),month=now.getMonth()+1......
  • JavaScript学习笔记(1)
    html完成了架子,css做了美化,但是网页是死的,我们需要给他注入灵魂,所以接下来我们需要学习JavaScript,这门语言会让我们的页面能够和用户进行交互。一、引入方式1.内部脚本将JS代码定义在HTML页面中JavaScript代码必须位于<script></script>标签之间在H......
  • 【转】[JavaScript] textContent 用法
    转自:kimi.ai在JavaScript中,textContent是一个用于操作DOM元素文本内容的属性。它允许你获取或设置指定元素及其子元素的文本内容。以下是关于textContent的详细用法和特点:1.获取文本内容textContent可以获取指定元素及其所有子元素的文本内容,忽略HTML标签。例如:HTM......
  • 【转】[JavaScript] try...catch 语法
    转自:kimi.ai在JavaScript中,try...catch是一种用于捕获同步错误的语法结构。它允许你尝试执行一段代码,并在代码运行过程中捕获可能出现的异常(错误),从而避免程序因为未处理的错误而崩溃。通过try...catch,你可以对错误进行处理,例如记录错误信息、提供默认值或执行替代逻辑。基本......
  • 请解释下href="javascript:void(0)"和href="#"的区别是什么?
    在前端开发中,href="javascript:void(0)"和href="#"都是常见的用于阻止链接默认行为的技巧,但它们之间有一些重要的区别。功能:href="javascript:void(0)":这个语句会执行JavaScript函数void(0),该函数返回undefined,从而阻止链接的默认行为(即跳转到新页面或重新加载当前......
  • javascript 对象的显示属性和隐式属性
    在JavaScript中,对象的属性可以分为“显示属性”(也称为自有属性,ownproperties)和“隐式属性”(通常指的是继承自原型链上的属性)。理解这两类属性的区别对于深入掌握JavaScript对象模型非常重要。显示属性(OwnProperties)显示属性是指直接定义在一个对象上的属性。它们是该对象......
  • JavaScript学习(三)
    有事情的缘故导致中间几天没有进行学习。今天开始继续后端的学习,学习的第五天(2025.1.20)JavaScript 函数定义        JavaScript使用关键字 function 定义函数。        函数可以通过声明定义,也可以是一个表达式。        函数声明   ......
  • 【转】[JavaScript] 解构赋值
    转自:kimi.ai解构赋值(DestructuringAssignment)是JavaScript中一种非常强大的语法特性,用于从数组或对象中快速提取数据并赋值给变量。它可以让代码更简洁、更易读。1.数组解构赋值数组解构赋值允许你从数组中按顺序提取值,并将它们赋值给变量。1.1基本用法JavaScript复制......
  • python import 思考二
    前言思考一中简单介绍了import导入模块时的检索机制然而在实际的导入时,我们经常会导入失败,尤其是在相对导入时。下面就绝对导入和相对导入时发生的一些问题进行记录和思考文件目录结构my_project/|--package1/| |--subpackage1/| | |--module2.py| |--module......
  • Python进阶:深入理解import机制与importlib的妙用
    目录一、Pythonimport机制概述1.1import语句的基本用法1.2模块缓存机制1.3导入搜索路径1.4导入钩子和查找器二、importlib的妙用2.1动态模块导入2.2使用importlib实现插件系统2.3重新加载模块三、总结在Python编程的世界里,import语句是开发者最常用的工......