CommonJS 和 ES6 模块化

CommonJS

index.js

// 导入
// 方式一:直接导入
// const student = require('./student')
// const school = require('./school')
// console.log(student)
// console.log(school)// 方式二:解构导入
const { name, slogan, getTel } = require('./school')// 方式三:解构导入+重命名
const { name: stuName, motto,  getTel: stuGetTel } = require('./student')console.log(name)
console.log(slogan)
console.log(getTel)console.log(stuName)
console.log(motto)
console.log(stuGetTel)// 该文件使用 require() 引入文件,只能在 nodejs 环境中执行,
// 不能在浏览器中使用,不过可以借助 browserify 打包成新的可供浏览器识别的js文件
// 使用:
// 1、下载安装 browserify  =》 npm i browserify -g
// 2、编译 index.js 输入为 build.js  =》 browserify index.js -o build.js
// 3、页面中引入使用  =》 <script src='./build.js'></script>// commomjs 是社区模块化规范,是node环境的模块化规范,可以通过工具编译支持浏览器

school.js

const name = '清华'
const slogan = '知识改变命运'function getTel() {return '0372-6688999'
}
function getCities() {return ['北京', '上海', '广州', '深圳']
}
// 导出方式一:module.exports = value
module.exports = { name, slogan, getTel }// 导出方式二:exports.key = value
// exports.name = name
// exports.motto = motto
// exports.getTel = getTel

student.js

const name = '章三'
const motto = '好好学习'function getTel() {return '0372-7788999'
}
function getCities() {return ['北京', '上海', '广州', '深圳']
}
// 导出方式一:module.exports = value
module.exports = { name, motto, getTel }// 导出方式二:exports.key = value
// exports.name = name
// exports.motto = motto
// exports.getTel = getTel

ES6 模块化

index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><!-- type="module" 将 js 模块化引入,js 中的变量不在全局上面 --><script type="module" src="./index.js"></script><button id="btn">动态导入</button>
</body>
</html>

index.js

// 导入
// 方式一:导入全部(通用)
// import * as student from './student.js'
// console.log(student)// 方式二:命名导入(对应导出方式:分别导出、统一导出)
// import { name as stuName, motto as stuMotto, getCities } from './student.js'
// console.log(stuName, stuMotto, getCities)// 方式三:默认导入
// import student from './student.js'
// console.log(student)    // {age: 19, getTel: ƒ}// 方式四:命名导入和默认导入可以混合使用
// import getTel, { motto, getCities } from './student.js'
// console.log(getTel())
// console.log(motto)
// console.log(getCities())// 方式五:动态导入
// document.querySelector('#btn').onclick = async () => {
//   const stu = await import('./student.js')
//   console.log(stu)  // 将 student.js 中所有导出的内容都导入了进来
// }// 方式六:import 可以不接受任何数据
import './template.js'

student.js

// 分别导出
export const name = '章三'
const age = 19
const motto = '好好学习'function getTel() {return '0372-7788999'
}
function getCities() {return ['北京', '上海', '广州', '深圳']
}
// 默认导出
// export default {
//   age, getTel
// }
export default getTel
// 全部(统一)导出
export {motto, getCities
}
// 以上三种方式导出的内容为:
/*{default: {getTel }getCitiesmotto,name
}
*/

template.js

console.log(Math.random())

package.json

{"type": "module"
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/51972.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

M-Fedya and Array(cf1793)

题意&#xff1a;小于相邻元素成为局部最小值&#xff0c;大于相邻元素成为局部最大值&#xff0c;a1和an为相邻元素&#xff0c;相邻数字相差1&#xff0c;给定局部最大值的和和局部最小值的和&#xff0c;构造函数 分析&#xff1a;让第一个为x&#xff0c;每次减1&#xff…

深扒大模型微调密码 - 从入门到技术小白都能看懂的神操作

朋友们&#xff0c;你们有没有听说过"大模型"和"微调"这两个概念呢&#xff1f;别着急,我们今天就来好好聊一聊! 想象一下,你有一个非常勤奋的小助理,它会尽最大努力帮你完成各种任务。不过有时候,它的知识储备和能力肯定有限,所以你得适时给它一些专门的…

Python基础知识点--总结

1. 注释 注释用于提高代码的可读性&#xff0c;在代码中添加说明文字&#xff0c;使代码更容易理解。 单行注释&#xff1a;使用 # 符号开头&#xff0c;注释内容在符号之后的行内。多行注释&#xff1a;使用三引号&#xff08; 或 """&#xff09;包裹注释内…

树莓派5 笔记25:第一次启动与配置树莓派5_8G

今日继续学习树莓派5 8G&#xff1a;&#xff08;Raspberry Pi&#xff0c;简称RPi或RasPi&#xff09; 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: Opencv 与 python 版本如下&#xff1a; 今日购得了树莓派5_8G版本&#xff0c;性能是同运…

springboot航班进出港管理系统--论文源码调试讲解

第2章 开发环境与技术 本章节对开发航班进出港管理系统管理系统需要搭建的开发环境&#xff0c;还有航班进出港管理系统管理系统开发中使用的编程技术等进行阐述。 2.1 Java语言 Java语言是当今为止依然在编程语言行业具有生命力的常青树之一。Java语言最原始的诞生&#xff…

SQL每日一练-0815

今日SQL题难度&#xff1a;&#x1f31f;☆☆☆☆☆☆☆☆☆ 1、题目要求 计算每个产品类别在每个月的总销售额和总销量。找出每个月销售额最高的产品类别&#xff0c;显示类别名称、销售月份、总销售额和总销量。 2、表和虚拟数据 现有两个表&#xff1a;Products 和…

React前端面试每日一试 8.什么是React Portals?

在React中&#xff0c;Portals 是一种技术&#xff0c;允许你将组件的子节点渲染到父组件DOM层次结构之外的DOM节点中。通常&#xff0c;React组件会按照嵌套结构渲染其子节点&#xff0c;但在某些情况下&#xff0c;我们希望将组件内容放置在DOM的其他位置&#xff0c;比如模态…

牛客网习题——通过C++实现

一、目标 实现下面4道练习题增强C代码能力。 1.求123...n_牛客题霸_牛客网 (nowcoder.com) 2.计算日期到天数转换_牛客题霸_牛客网 (nowcoder.com) 3.日期差值_牛客题霸_牛客网 (nowcoder.com) 4.打印日期_牛客题霸_牛客网 (nowcoder.com) 二、对目标的实现 1.求123...n_…

springboot整合springmvc

1、创建springboot项目&#xff0c;勾选Spring web 当前springboot选择的是2.6.13版本&#xff0c;jdk1.8尽量选2.几的springboot 2、在pom.xml中导入相应的坐标 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-…

WPF中XAML相对路径表示方法

在WPF XAML中&#xff0c;相对路径是一种非常实用的方式来引用资源文件&#xff0c;如图像、样式表和其他XAML文件。相对路径可以帮助您构建更加灵活和可移植的应用程序&#xff0c;因为它允许资源文件的位置相对于XAML文件的位置进行定位。 相对路径的表示方法 在XAML中&…

[机器学习]--KNN算法(K邻近算法)

KNN (K-Nearest Neihbor,KNN)K近邻是机器学习算法中理论最简单,最好理解的算法,是一个 非常适合入门的算法,拥有如下特性: 思想极度简单,应用数学知识少(近乎为零),对于很多不擅长数学的小伙伴十分友好虽然算法简单,但效果也不错 KNN算法原理 上图是每一个点都是一个肿瘤病例…

对比state和props的区别?

在React中&#xff0c;state和props是两个核心概念&#xff0c;它们都用于管理组件的数据和状态&#xff0c;但在使用和作用上存在明显的区别。以下是它们之间的详细对比&#xff1a; 1. 定义与来源 props&#xff08;属性&#xff09;&#xff1a; 定义&#xff1a;props是组…

Sakana.ai 迈向完全自动化的开放式科学发现

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

OFDM系统调制,子载波间隔越小,有啥影响?

在OFDM&#xff08;正交频分复用&#xff09;系统中&#xff0c;子载波间隔是一个重要的参数&#xff0c;它直接影响系统的性能。当OFDM系统的子载波间隔越小时&#xff0c;会产生以下几个主要影响&#xff1a; 1. 对多普勒频移和相位噪声的敏感性增加 多普勒频移&#xff1a…

从零开始搭建k8s集群详细步骤

声明&#xff1a;本文仅作为个人记录学习k8s过程的笔记。 节点规划&#xff1a; 两台节点为阿里云ECS云服务器&#xff0c;操作系统为centos7.9&#xff0c;master为2v4GB,node为2v2GB,硬盘空间均为40GB。&#xff08;节点基础配置不低于2V2GB&#xff09; 主机名节点ip角色部…

Docker最佳实践进阶(一):Dockerfile介绍使用

大家好&#xff0c;上一个系列我们使用docker安装了一系列的基础服务&#xff0c;但在实际开发过程中这样一个个的安装以及繁杂命令不仅仅浪费时间&#xff0c;更是容易遗忘&#xff0c;下面我们进行Docker的进阶教程&#xff0c;帮助我们更快速的部署和演示项目。 一、什么是…

力扣面试经典算法150题:找出字符串中第一个匹配项的下标

找出字符串中第一个匹配项的下标 今天的题目是力扣面试经典150题中的数组的简单题: 找出字符串中第一个匹配项的下标 题目链接&#xff1a;https://leetcode.cn/problems/find-the-index-of-the-first-occurrence-in-a-string/description/?envTypestudy-plan-v2&envIdto…

docker compose部署rabbitmq集群,并使用haproxy负载均衡

一、创建rabbitmq的data目录 mkdir data mkdir data/rabbit1 mkdir data/rabbit2 mkdir data/rabbit3 二、创建.erlang.cookie文件&#xff08;集群cookie用&#xff09; echo "secretcookie" > .erlang.cookie 三、创建haproxy.cfg配置文件 global log stdout fo…

深度学习基础—正则化

正则化&#xff1a;解决模型过拟合的手段&#xff0c;本质就是减小模型参数取值&#xff0c;从而使模型更简单。常用范数如下&#xff1a; 使用最多的是L2范数正则项&#xff0c;因此加入正则项的损失函数变为&#xff1a; 使用梯度下降法的权重调整公式&#xff1a; 推导后得到…

HTML浏览器缓存(Browser Cache)

介绍&#xff1a; 浏览器缓存是Web缓存中最直接、最常见的一种形式。当浏览器首次请求某个资源时&#xff0c;如果服务器响应中包含了缓存控制指令&#xff08;如Cache-Control、Expires等&#xff09;&#xff0c;浏览器就会将这些资源存储在本地缓存中。后续请求相同资源时&a…