当前位置: 首页 > news >正文

龙泉市建设局网站佛山市建设网站

龙泉市建设局网站,佛山市建设网站,南京建设网站要多少钱,泰安人才网官方网目录 ES6 Module 核心语法 1. export - 导出模块内容 (1) 命名导出 (Named Exports) (3) 混合导出 (Combining Named and Default) 2. import - 导入模块内容 (1) 导入命名导出 (2) 导入默认导出 (3) 混合导入 3. 动态导入 (import()) 重要特性与注意事项 总结 ES6 …目录 ES6 Module 核心语法 1. export - 导出模块内容 (1) 命名导出 (Named Exports) (3) 混合导出 (Combining Named and Default) 2. import - 导入模块内容 (1) 导入命名导出 (2) 导入默认导出 (3) 混合导入 3. 动态导入 (import()) 重要特性与注意事项 总结 ES6 Module 核心语法 ES6 Module 的核心围绕两个关键字export 和 import。 1. export - 导出模块内容 一个模块就是一个独立的文件。文件内部定义的变量、函数、类等默认对外是不可见的。要使其能被其他模块使用必须使用 export 显式导出。 (1) 命名导出 (Named Exports) 方式一在声明前直接添加 export // module.js (utils 模块) export const PI 3.14159; // 导出常量 export function double(x) { // 导出函数return x * 2; } export class Person { // 导出类constructor(name) {this.name name;} } // 未导出的变量是模块私有的 const privateVar secret; 方式二在文件末尾统一导出 // module.js const PI 3.14159; function double(x) { return x * 2; } class Person { ... }// 使用 export { ... } 语法统一导出 export { PI, double, Person }; // 也可以在导出时重命名export { PI as CircleRatio, double } 特点 一个模块可以有多个命名导出。 导入时必须使用完全相同的名称或用 as 重命名。 是模块的主要导出方式明确导出哪些接口。 语法 使用 export default // logger.js export default function(message) {console.log([INFO] ${message}); } // 或者先定义再导出 // function log(message) { ... } // export default log; // config.js const appConfig {apiUrl: https://api.example.com,env: production }; export default appConfig; 特点 一个模块只能有一个 export default。 导出的是一个值可以是函数、类、对象、原始值等而不是名字。 导入时可以任意命名后面会讲到。 常用于导出模块的主要功能、单例对象或值。 (3) 混合导出 (Combining Named and Default) 可以在一个模块中同时使用命名导出和默认导出。 // mathUtils.js export const PI 3.14159; // 命名导出 export function square(x) { return x * x; } // 命名导出 export default function(x) { // 默认导出 (一个计算圆面积的函数)return PI * square(x); } 2. import - 导入模块内容 要从其他模块使用导出的功能必须使用 import 语句导入它们。 (1) 导入命名导出 基本语法 import { identifier1, identifier2, ... } from module-path; // main.js import { PI, double, Person } from ./module.js; // 导入特定的命名导出console.log(PI); // 3.14159 console.log(double(5)); // 10 const john new Person(John); 导入时重命名 (使用 as): import { PI as CircleRatio, double as multiplyByTwo } from ./module.js; console.log(CircleRatio); console.log(multiplyByTwo(3)); 导入整个模块对象 (Namespace Import): 使用 * as namespace 将模块的所有命名导出收集到一个命名空间对象上。默认导出 (export default) 不包含在此对象中 import * as utils from ./module.js;console.log(utils.PI); console.log(utils.double(7)); const mary new utils.Person(Mary); // utils.default 是 undefined (除非该模块有 export default) (2) 导入默认导出 基本语法 import anyName from module-path; (可以任意命名) // app.js import myLogger from ./logger.js; // 导入默认导出命名为 myLogger import config from ./config.js; // 导入默认导出命名为 configmyLogger(Application started!); console.log(config.apiUrl); (3) 混合导入 可以同时导入一个模块的默认导出和命名导出。 语法 import defaultExport, { namedExport1, namedExport2, ... } from module-path; 或 import defaultExport, * as namespace from module-path; // appMath.js import calcArea, { PI, square } from ./mathUtils.js; // 导入默认导出和命名导出console.log(PI); console.log(square(4)); // 16 console.log(calcArea(2)); // 3.14159 * 4 ≈ 12.56636 import calcArea, * as math from ./mathUtils.js; // 导入默认导出和所有命名导出(作为math对象) console.log(math.PI); console.log(math.square(3)); 3. 动态导入 (import()) import 语句是静态的必须在模块顶层使用。ES2020 引入了动态导入函数 import()它返回一个 Promise在需要时如按需加载、条件加载异步加载模块。 // 按需加载一个模块 button.addEventListener(click, async () {try {const module await import(./dynamicModule.js); // 返回一个包含导出的对象module.doSomethingAwesome();} catch (error) {console.error(Module loading failed:, error);} });// 条件加载 if (userNeedsAdvancedFeature) {import(./advancedFeature.js).then(advancedModule {advancedModule.init();}).catch(err { ... }); } 特点 返回 Promise可以使用 then/catch 或 async/await 处理。 加载的模块的所有导出包括 default都作为返回对象的属性。访问默认导出需要使用 .default 属性。 是代码分割Code Splitting和优化加载性能的关键技术。 重要特性与注意事项 严格模式 ES6 模块自动处于严格模式 (use strict)无需手动声明。 只读视图 通过 import 导入的绑定是只读的常量。你不能直接修改导入的变量如果是原始值或重新赋值导入的变量如果是对象可以修改其属性但不建议这样做破坏了模块的封装性。 单例 同一个模块被多次导入时只会被执行一次导出的实例是同一个单例。 静态结构 import 和 export 语句必须位于模块的顶层作用域不能在 if、函数等块级作用域内。 模块路径module-path必须是字符串字面量不能是变量或表达式。 这使得引擎和打包工具如 Webpack, Rollup, Vite能在编译/构建阶段就确定所有依赖关系进行静态分析和优化Tree Shaking。 循环依赖 ES6 Module 支持循环依赖Module A 导入 Module BModule B 也导入 Module A但需要小心设计避免在模块初始化阶段相互访问尚未完成初始化的值。引擎的处理机制能保证模块至少先完成声明提升但赋值可能还未完成。 文件扩展名与路径 在浏览器中模块路径通常需要完整的 URL 或相对路径.js 扩展名通常需要显式写出。 在 Node.js 和打包工具中规则更灵活可能支持省略 .js解析 node_modules 等具体遵循工具或环境的模块解析策略。 使用打包工具时路径别名alias是常见配置。 总结 ES6 Module 提供了一套强大、标准化的 JavaScript 模块化方案 export: 用于导出模块的功能命名导出 export { ... } / 默认导出 export default。 import: 用于导入其他模块的功能按名称导入 import { ... } / 导入默认 import ... / 命名空间导入 import * as ...。 import(): 用于动态、异步加载模块。 核心优势 依赖清晰、作用域隔离、支持静态分析优化Tree Shaking、语言原生支持、浏览器和 Node.js 统一。 实践建议 优先使用命名导出以明确接口默认导出用于模块的“主要功能”利用打包工具处理兼容性和优化善用动态导入提升应用性能。 掌握 ES6 Module 语法是现代 JavaScript 开发的必备技能。它让你的代码结构更清晰、更易维护、更易复用并为构建大型复杂应用奠定了坚实的基础。
http://www.hkea.cn/news/14431677/

相关文章:

  • 团购网站app制作网站聚合优化
  • 网站界面优化nofollow标签对网站收录的影响
  • 影响网站排名的因素如何推广自己的微信公众号
  • 自己的主机做服务器网站如何备案做ppt好的模板下载网站有哪些
  • 关系的网站佛山网站建设优化企业
  • 企业网站使用不规范地图如何处罚网站的上传与发布
  • 网站框架设计图干运维为什么会废了
  • 国内知名网站制作公司上海公司车牌最新价格
  • 遵义网约车租车公司站内优化网站怎么做
  • 可以搭建分站的网站自己做图片的网站链接
  • 管理网站建设源代码程序易营宝网站建设
  • 天津做宠物饲料的网站江苏省华建建设股份有限公司网站
  • 外贸高端网站定制湛江seo代理商
  • 济南360做网站电话枫树seo网
  • 网站 固定ip自己制作网址收款
  • 苏州尚云网站建设wordpress linux 伪静态
  • 网站建设 网站推广白帽seo是什么
  • 系统 网站开发工程师网站建设报价单 文库
  • windows系统安装wordpress网站seo方案案例
  • 钦州建设网站网络运营者应当制定网络安全事件
  • 我想在网站上卖食品怎么做温州网站开发公司
  • 做网站的图片Pc端和手机端的区别上海网站推广定制
  • OA 公司网站 铁道建设报wordpress 新页面打开空白页
  • 比较大的软件下载网站国外自助建站
  • 国外网站免费dnswordpress dux-plus
  • 两学一做网站专栏怎么设置百度网盘登陆入口
  • 天津seo网站管理电商网站平台有哪些功能模块
  • html5网站模板怎么修改wordpress设置自己的管理邮箱
  • 定制营销型网站什么意思湖南省交通建设质量监督站网站
  • 有关建设旅行网站的建设wordpress 功能开发教程