最新要闻
- 每日焦点!TCL华星展示最新带鱼屏模组:暗处无限接近0nit
- 天天热议:矿卡的阴影已经过去了 板卡一哥华硕率先表态:显卡库存已正常
- 全球观速讯丨遇到查酒驾猛打方向盘 结果巧了:直接一步到位
- 全球快资讯:无视油车 特斯拉Model Y成英国12月最畅销汽车
- 世界播报:售价超2万元!世界首款真无线电视现身CES:电池供电不插线
- 世界观热点:国人不再迷信日本车 日产2022年累计销量105万:同比暴跌超1/5
- 当前热讯:又见白菜价 梅捷2TB SSD硬盘到手554元(每GB不到3毛)
- HTC Vive XR眼镜发布:双2K屏、配有可拆卸电池
- 最资讯丨四川一地再现土坑酸菜 工人用脚踩 网友无奈:眼不见为净
- 每日视讯:Redmi K60/K60 Pro对比拆解:做工用料良心!性价比刚刚的
- 当前滚动:三亚民宿老板称一个月赚回三年亏损:20万一晚酒店已售罄
- 焦点关注:谁说微星不做AMD显卡了!RX 7900终于亮相 只是有点敷衍
- 天天快播:红魔8 Pro系列即将再次开卖:3999元起 首销曾被抢购一空
- 云南发现2.44亿年前“奇异罗平龙”化石:身长超半米 像蜥蜴
- 马化腾服不服?李彦宏:百度研发强度、投入国内最牛 比腾讯高
- 每日视讯:比亚迪仰望:那年我翻山跨海 横扫车圈无对手
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
今日观点!day03-模块化编程
模块化编程
1.基本介绍
- 传统的非模块化开发有如下的缺点:(1)命名冲突(2)文件依赖
- JavaScript代码越来越庞大,JavaScript引入模块化编程,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块
- JavaScript使用“模块”(module)的概念来实现模块化编程,解决非模块化编程问题。
- 模块化也是ES6新特性
2.模块化编程原理示意图
3.模块化编程的分类
- CommonJS模块化规范/ES5的写法
- ES6模块化规范
3.1CommonJS模块化规范/ES5的写法
3.1.1介绍
- 每个js文件就是一个模块,有自己的作用域。在文件中定义的变量、函数、类/对象,都是私有的,对其他js文件不可见
- CommonJS使用
module.exports={}
或者exports={}
导出模块,使用let/const 名称=require("xx.js")
导入模块
3.1.2应用实例
需求说明
- 编写function.js,该文件有函数,变量,常量,对象,数组....
- 要求在use.js,可以使用到function.js中定义的函数/变量/常量/对象
- 请用模块化编程的方式完成,尽量将各种写法都写一下
思路分析
【资料图】
代码应用
function.js
//定义一些对象,变量,常量,函数等const sum = function (a, b) { return parseInt(a) + parseInt(b);}const sub = function (a, b) { return parseInt(a) - parseInt(b);}let name = "jack";const PI = 3.14;const monster = { name: "牛魔王", age: 500, hi() { console.log("hi 你好,牛魔王"); }}//导出/** * 1.module.exports 导出模块 * 2.把你需要导出的数据,写入到{}中即可 * 3.可以全部导出,也可以部分导出 * 4.理解:相当于把所有导出的数据当做一个对象 * 5.如果属性名和属性值(即要导出的函数/变量/对象...)的名字相同,可以简写 * 6.module.exports ={} 也可以简写为 exports= {} */exports = { //简写 sum, sub, name, PI}// module.exports = {//完整的写法--属性:属性值// sum: sum,// sub: sub,// myname: name,// PI: PI// }
use.js
//导入/** * 1.在es5中,通过require 把对应文件.js 中的数据/对象 引入 * 2.通过 对象.属性 的形式使用 * 3.如果我们导入时,不需要所有的数据,可以导入部分数据 */const m = require("./function.js");const {sub} = require("./function.js");//使用console.log(m.sub("100", "200"));console.log(m.sum(10, 90));console.log(m.name);console.log(m.PI);console.log(sub(19, 3));
3.2ES6模块化规范
3.2.1介绍
ES6使用
(1)
export{对象/函数/变量/常量等}
(批量导出)(2)
export 定义 = {}
(定义导出)(3)
export default {}
(默认导出)以上三种方式都可导出模块
如果使用的是批量导出或定义导出的,导入时要用
import {} from "xx.js"
形式如果用默认导出的,导入时要用
import 名称 from "xx.js"
形式
3.2.2应用实例-批量导出形式
需求说明
- 编写common.js,该文件有函数,变量,常量,对象
- 要求在use_common.js中,可以使用到common.js中定义的 函数/变量/常量/对象
- 请使用ES6模块化编程的方式完成
代码实现
common.js
//定义一些对象,变量,常量,函数等const sum = function (a, b) { return parseInt(a) + parseInt(b);}const sub = function (a, b) { return parseInt(a) - parseInt(b);}let name = "jack";const PI = 3.14;const monster = { name: "牛魔王", age: 500, hi() { console.log("hi 你好,牛魔王"); }}/** * es6之批量导出 * 1.export 就是导出模块/数据 * 2.可以全部导出,也可以部分导出 */export { sum, sub, name, monster}
use_common.js
/** * 导入 * 1.可以使用{} 来接收导出的数据 * 2.可以全部接收,也可以选择的接收 * 3.细节:导入{}中的名字,要求和导出{}中的名称一致 */import {monster, name} from "./common.js";//使用console.log(monster);console.log(name);
3.2.3应用实例-其他导出形式
- 定义导出
common2.js
//定义一些对象,变量,常量,函数等//定义导出//定义sum函数时,就直接导出//如果在定义时导出的数据,在导入时要保持名称一致export const sum = function (a, b) { return parseInt(a) + parseInt(b);}
use_common2.js
//可以导入模块/数据import {sum} from "./common2.js";//使用console.log(sum(10, 40));
- 默认导出
common3.js
//定义一些对象,变量,常量,函数等//演示默认导出//可以这样理解,类似于把{}内的数据当做一个对象导出export default { sum(a, b) { return parseInt(a) + parseInt(b); }, sub(a, b) { return parseInt(a) - parseInt(b); }}
use_common3.js
//导入默认导出的模块/数据//m的名称是可以自定义的,因此就可以解决命名冲突的问题import m from "./common3.js";//以 对象.属性 的形式使用console.log(m.sum(11, 22));console.log(m.sub(88, 66));
3.2.4注意事项和细节
- ES6的模块化无法在Node.js中执行,需要用Babel转码ES5后再执行
- export不仅可以导出对象,一切JS变量都可以导出。比如:基本类型变量,函数,数组,对象
- 没有导出的数据不能使用
- ES6的导出方式有很多,不同的导出方式对导入方式也有影响
4.练习
请编写一个文件hw_common.js,该文件有对象cat(属性有name,age,cry() ),对象dog(属性有name,age,hi() )
- 使用批量导出
- 使用定义导出
- 使用默认导出
hw_common.js
(1)批量导出:
const cat = { name: "猫猫", age: 2, cry() { console.log("喵喵"); }}const dog = { name: "狗狗", age: 3, hi() { console.log("旺旺"); }}//批量导出export {cat,dog}
(2)定义导出
export const cat = { name: "猫猫", age: 2, cry() { console.log("喵喵"); }}export const dog = { name: "狗狗", age: 3, hi() { console.log("旺旺"); }}
(3)默认导出
//默认导出//注意写法有一些变化,把我们的两个对象当做{}的属性即可export default { cat: { name: "猫猫", age: 2, cry() { console.log("喵喵"); } }, dog: { name: "狗狗", age: 3, hi() { console.log("旺旺"); } }}
编写use_common.js,在该文件中使用hw_common.js导出的模块/数据,注意体会使用特点
导入默认导出的数据:
//导入默认导出的数据import m from "./hw_common.js";//使用console.log(m.cat.name, m.cat.age, m.cat.cry());console.log(m.dog.name, m.dog.age, m.dog.hi());
导入 批量导出或定义导出 的数据:
//导入 批量导出或定义导出 的数据import {dog, cat} from "./hw_common.js";//使用console.log(dog.name,dog.hi());console.log(cat.name,cat.cry());
a.js有一个dog对象(含有hi()方法),b.js也有一个dog对象(含有say()方法),请使用模块化的编程思路,在a.js能使用到不同的dog对象,请编程完成。
使用默认导出解决命名冲突
b.js
//默认导出export default { dog: { say() { console.log("say...") } }}
a.js
const dog = { hi() { console.log("hi..") }}//导入默认导出的数据import dog2 from "./b.js";//使用console.log(dog2.dog.say(), dog.hi());
今日观点!day03-模块化编程
今日最新!vue中$children的理解
每日焦点!TCL华星展示最新带鱼屏模组:暗处无限接近0nit
天天热议:矿卡的阴影已经过去了 板卡一哥华硕率先表态:显卡库存已正常
全球观速讯丨遇到查酒驾猛打方向盘 结果巧了:直接一步到位
全球快资讯:无视油车 特斯拉Model Y成英国12月最畅销汽车
世界播报:售价超2万元!世界首款真无线电视现身CES:电池供电不插线
记录--微信调用jssdk全流程详解
最新:LaTeX 进阶语法
世界观热点:国人不再迷信日本车 日产2022年累计销量105万:同比暴跌超1/5
当前热讯:又见白菜价 梅捷2TB SSD硬盘到手554元(每GB不到3毛)
HTC Vive XR眼镜发布:双2K屏、配有可拆卸电池
最资讯丨四川一地再现土坑酸菜 工人用脚踩 网友无奈:眼不见为净
每日视讯:Redmi K60/K60 Pro对比拆解:做工用料良心!性价比刚刚的
【吐槽贴】项目经理的进阶日常:项目要收尾了,我却慌了
当前滚动:三亚民宿老板称一个月赚回三年亏损:20万一晚酒店已售罄
焦点关注:谁说微星不做AMD显卡了!RX 7900终于亮相 只是有点敷衍
天天快播:红魔8 Pro系列即将再次开卖:3999元起 首销曾被抢购一空
云南发现2.44亿年前“奇异罗平龙”化石:身长超半米 像蜥蜴
马化腾服不服?李彦宏:百度研发强度、投入国内最牛 比腾讯高
通讯!Git管理版本详细教程
世界快播:手工实现一个ORM小框架
【天天播资讯】AIRIOT答疑第5期|如何使用低代码业务流引擎?
亲测有效! Bypass V1.15.5 12306分流抢票助手 for Windows
每日视讯:比亚迪仰望:那年我翻山跨海 横扫车圈无对手
信息:联想Yoga Book 9i双屏笔记本发布:两块13寸2.8K触摸屏
当前视讯!AMD锐龙7000智酷版上架!6核不过1549元 可能有惊喜
天天观焦点:女子吐槽智能电视会员乱象:看什么都收费
环球速递!国产秀肌肉!全球首款8K激光电视来了:海信打造、画质细数毛
【世界快播报】保存用户登录状态之Session和JWT
【世界热闻】three.js场景地形导出到物理引擎
网站变更检测、监控、警报丨WebSite-Watcher功能简介
基于Python的K-Means遥感影像聚类
苹果iOS app上架流程
世界观察:《阿凡达2》接招!国产科幻大片走出国门 《流浪地球2》将在澳新上映
消息!特斯拉国产车型大幅降价 副总裁陶琳回应:坚持以成本定价
Win11 2023开年更新Build 25272发布:干掉中文版大BUG!更加流畅稳定
特斯拉降价 网友翻出蔚来李斌2年前视频:价格稳定是对用户负责
天天新消息丨智能电视视频会员一充再充!体验太差了
全球即时:gget: 一款强大的基因组参考数据库的高效查询工具
学习笔记——过滤器链;监听器;Servlet、Filter、Listener的注解方式开发
Model 3要破20万节奏!特斯拉国产车型大幅降价 老车主晒图被割韭菜
redhat 9.1 安装docker
天天通讯!nginx: [error] CreateFile() “D:\nginx1.20.1/logs/nginx.pid“ failed (2: The
学习笔记——过滤器的匹配规则
国产特斯拉大幅降价被业内看好 带火供应链:大批概念股飞涨
【天天播资讯】特斯拉 2023第一个交易日:市值缩水一个推特
天天播报:CDPR赔偿1267万!《赛博朋克2077》集体诉讼案终于告一段落
当前热点-汽车博主为小米汽车打抱不平:部分媒体只会道听途说
北斗授时产品(GPS北斗授时设备)加NTP时间服务器设计思路
世界最资讯丨学习笔记——过滤器、过滤器的HelloWord、过滤器生命周期
【全球新要闻】A. Greatest Convex【Codeforces Round #842 (Div. 2)】
【天天速看料】如何安全的保存用户密码
焦点热讯:灵雀云入选2022 EDGE AWARDS「创新场景50」年度最佳场景实践榜单
全球播报:联想ThinkPhone真机亮相:经典ThinkPad涂装抢眼
【世界独家】恒驰5首次OTA升级来了!低温续航性能提升
当前消息!超越日本!印度成全球第三大汽车市场 平均千人36辆
吴京参演 《中国乒乓之绝地反击》定档大年初一:春节档已有7部新片
男子和白骆驼合影被攻击!专家提醒:骆驼战斗力惊人
环球热文:使用python编写端口扫描工具
QFramework v1.0 使用指南 工具篇:15. 补充内容:GridKit 二维格子数据结构
速读:【从零开始学爬虫】采集食品行业最新报价数据
Redmi 12C支持内存扩展:4GB内存手机瞬间变6GB 699元性价比更高了
全球消息!RTX 4050加持!联想发布Yoga AIO 9i一体机:设计惊艳
国产车型大降价 新款特斯拉Model X/S售价公布:超100万
【焦点热闻】小米13被低估了!网友没想到小米13相机能有这么大惊喜
天天日报丨三件套抄底:李锦记锦珍大桶生抽+金蚝油+黄豆酱 19.6元
每日热闻!数据结构:ST表 学习笔记
快资讯:ESP32 I2C 总线主模式通信程序
天天观点:创新的概念、设计和生产鞋类和鞋类软件丨Jevero及Botcha 3D功能简介
学习笔记——书城项目第五阶段之购物车数量的修改、精度问题的处理
世界观速讯丨《人民日报》炮轰手机预装应用不能删:占内存、鸡肋、广告满天飞
【当前热闻】240W闪充卷王!真我GT Neo5即将登场:有两种版本
全球动态:TCL华星宣布品牌形象升级:全新Logo正式上线
12月汽车投诉榜:丰田包揽前三甲 踩的同一个“坑”
世界快资讯:PS5主机千万别再长期竖向放置了!维修人士:会导致APU液金泄露 造成永久损坏
当前关注:阿汤哥驾F14爽片《壮志凌云2》惜败!《阿凡达2》成2022年票房冠军 赢麻
快资讯丨回顾2022
全球简讯:春节放假7天要调休!除夕火车票明日开抢
骁龙8 Gen2首发!高通正式推出卫星通信:3秒发出信息、可实现双向收发
每日视讯:Intel怕吗!AMD锐龙7000史上最强核显 这性能不得了
好用的工具
世界最资讯丨Python中的注释和input函数的使用
世界视讯!被骗好久!宰相刘罗锅真的是一个罗锅吗?1.9米帅男一枚
环球视讯!5位退役也未曾飞天的航天员首次公开!他们也是英雄
天天精选!在我电脑里 这是唯一的一个360产品
存款贬值快一半!土耳其人把游戏当成了救命稻草
顺序结构及if选择结构
环球今亮点!左偏树 学习笔记
亲测有效! Scrutiny 网站SEO检测及优化工具 V12.6.1 for mac
全球聚焦:创建型模式——前言
continue跳過循環(skippaart程序),接受設定的合法分數來進行平均分求值,并展現最高分,最低分
AMD锐龙7000 3D版暴力堆料144MB缓存 微软神助攻:Win11专属优化
【环球新视野】大疆2022年之最:有人每天飞5小时 有人一年飞了3万公里
正点原子FSMC控制TFT-LCD的地址偏移解读
【全球新视野】linux 下 mongodb 安装
PG中级证书到手,PostgreSQL(PG)认证
每日看点!RX 7900 XT悄然降价:国行回归7399元
【环球播资讯】AMD锐龙7000送上史上最强核显!频率3GHz 超越所有独显
世界播报:上海一家网吧春节促销:300元包20天 玩家签“生死状”