ES5程序设计转ES6 笔记

课程链接

1. 立即执行函数

  • 特点:执行结束,立即销毁;独立作用域
  • 执行符号()只能跟在表达式后面,不能放在函数声明后
  • 分号可以写在前面/后面
  • document为传入实参,doc为形参
;(function(doc){...const init = ()=>{bindEvent()}function bindEvent(){obj.addEventListener('click', onClick, false)}init()
})(document)

2. init函数

  • 模块初始化函数init管理模块执行
  • 用函数专门去绑定事件处理函数
  • 在init中执行绑定事件处理函数
  • 让功能性的东西能复用

3. webpack 自动化解决方案

3.1 npm init后生成package.json文件

{"name": "calculator-webpack","version": "1.0.0","description": "webpack study","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1"},"repository": {"type": "git","url": "https://gitee.com/ying9481/calculator-webpack.git"},"keywords": ["webpack"],"author": "hyy","license": "MIT"
}

3.2 开发环境安装包

$ cnpm i -D webpack webpack-cli webpack-dev-server 
babel-loader@7 babel-core babel-preset-env 
babel-plugin-transform-runtime babel-plugin-transform-decorators 
babel-plugin-transform-decorators-legacy sass-loader node-sass 
css-loader style-loader ejs-loader html-webpack-plugin

3.3 path模块

path.resolve的每个参数,从左至右看成cd操作理解

3.4 use的执行顺序

从下到上、从右到左 → 先经过css-loader,再到style-loader

1、作用①:压缩代码,混淆js代码;
2、作用②:浏览器不支持ES5以上的语法,webpack可以安装一系列依赖包将之翻译成ES5
3、作用③:将less、sass编译成css
4、所需依赖:

  1. 【三大件】webpack、webpack-cli(脚手架)、webpack-dev-server(开发者服务器插件)
  2. 【六件套】处理ES6 ES7… 装饰器:
    . babel-loader@7、babel-core、babel-preset-env (babel8版本和babel-core不兼容)
    . babel-plugin-transform-runtime
    . babel-plugin-transform-decorators、 babel-plugin-transform-decorators-legacy
  3. 【四大件】处理样式sass:
    . sass-loader、node-sass、css-loader、style-loader ( postcss-loader autoprefixer )
  4. 处理模板:ejs-loader
  5. 处理HTML: html-webpack-plugin

5、安装指令:

  • –save-dev 简写 -D (安装在开发环境下的,线上不跑)
  • –save 简写 -S (安装在生成环境下的,线上代码也需要的,如ejs)

6、配置安装包 webpack.config文件
特*:所有plugin结尾的依赖,一般要require导入、loader则不用
plugins: [ new HtmlWebpackPlugin( { } ) ]
7、 用命令跑配置文件webpack.config,在package.json的script里(跑脚本)
8、webpack的path模块 解决绝对路径
9、webpack上线时,mode变为production
10、export{ }用到了结构赋值

4.

  • addEventListener
  • 立即执行函数
  • 绑定属性,getAttribute
  • 装饰器
  • 组件化(类的形式)
  • proxy

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

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

相关文章

DPDK helloworld 源码阅读

在 DPDK Programmers Guides 中的 EAL 一篇中有一个图可以很清晰地看到一个DPDK的应用程序的大致执行思路: 初始化检查CPU支持、微架构配置等完成后,执行main()函数。 第一步是 rte_eal_init(),核心初始化和启动。其中线程使用的是pthread库&…

javascript --- 作用域和闭包

执行环境: // 定义了变量或函数有权访问的其他数据,决定了它们各自的行为 // 每个执行环境都有一个变量对象与之对应,执行环境中所定义的所有变量和函数都保存在变量对象中 // 某个执行环境中的所有代码执行完毕后,该执行环境被销毁,保存在其中的所有变量和函数定义也随之销毁…

异步下载圆形进度条显示进度

圆形进度条参考链接即可:使用css3实现圆形进度条 需求点击下载后遮罩层显示下载进度: 1.圆形进度条参考以上链接,有点小瑕疵,可更改定位距离实现重合。 2.遮罩层: .lbOverlay{display: none;position: fixed;left: 0;…

javascript基本功

隐式类型转换 var a {_default: 0,toString: function () {return a._default} } if (a 1 && a 2 && a 3) {console.log(解) } 访问一个变量的时候进行拦截 var _default 0 Object.defineProperty(window, a, {get() {return _default} }) if (a 1 &am…

深信服笔试,抓兔子

*问题描述:抓兔子n个排成一排的洞,编号为1到n,兔子每天晚上会跳到相邻的一个洞里,小q每天只能白天检查其中的一个洞,小q会告诉你每天检查的洞,分析是否一定能抓到兔子示例:3个洞,第一…

es6 --- 模块

function foo(){var something cool;var another [1, 2, 3];function doSomething() {console.log( something );}function doAnother() {console.log( another.join( " ! " ) );} } // 是一个不明显的闭包,doSomething()和doAnother()保持了foo的内部作用域接下来…

Java之递归遍历目录,修改指定文件的指定内容

EditProperties.java 1 package PropertiesOperation.Edit;2 3 import java.io.File;4 5 /**6 * 替换指定Porpoerties文件中的指定内容7 * 三个参数:8 * filePath:存放properties文件的目录9 * srcStr:需要替换的字符串 10 * desStr&…

学习日志---7

1.复习Linux hadoop hdfs MapReduce基础知识 1,列举linux常用命令 shutdown now reboot mkdir mkdir -p touch filename rm -r filename rm -rf filename vi filename i--->可编辑状态 esc --> : --->wq 保存退出 q! wq! cat grep find ifconfig ping user…

javascript --- 属性描述符

从ES5开始,所有的属性都具备了属性描述符 var myObject {a: 2 };Object.getOwnPropertyDescriptor(myObject, "a"); //{ // value:2, // writable: true, // 可写 // enumerable: true, // 可枚举 // configurble: true // 可配置 //}定义属性…

看了吗网址链接

sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId1005269003&utm_campaigncommission&utm_sourcecp-400000000398149&utm_mediumshare # -*- coding: utf-8 -*- ""&qu…

JMeter 性能测试进阶实战

课程简介 本课程制作的主要目的是为了让大家快速上手 JMeter,期间穿插了大量主流项目中用到的技术,以及结合当今主流微服务技术提供了测试 Dubbo 接口、Java 工程技术具体实施方案,注重实践、注意引导测试思维、拒绝枯燥的知识点罗列、善于用…

javascript --- 混入

显示混入: function mixin(sourceObj, targetObj){for(var key in sourceObj){ // 遍历source中的所有属性if(!(key in targetObj)) { // 找到targetz中没有的属性targetObj[key] sourceObj[key];}}return targetObj; }var Vehicle {engines: 1,iginition: function() {c…

php源码代目录

ext :存放动态和内建模块的目录,在这里可以找到所有的php官方亏站,并且也可以在这里编写扩展; main:包含php的主要宏定义; pear: PHP扩展与应用库; sapi:包含不同服务器抽象层的代码; TSRM:Zend和PHP的"线程安全资源管理器"目录; Z…

bzoj1231 [Usaco2008 Nov]mixup2 混乱的奶牛——状压DP

题目&#xff1a;https://www.lydsy.com/JudgeOnline/problem.php?id1231 小型状压DP&#xff1b; f[i][j] 表示状态为 j &#xff0c;最后一个奶牛是 i 的方案数&#xff1b; 所以下一个只能是和它相差大于 k 而且不在状态中的奶牛。 代码如下&#xff1a; #include<iostr…

JavaScript高级程序设计阅读笔记

2020-11-15 通过初始化指定变量类型 数字-1 对象null和null的比较&#xff08;不理解&#xff09;使用局部变量将属性查找替换为值查找&#xff08;算法复杂度&#xff09;循环的减值迭代&#xff0c;降低了计算终止条件的复杂度switch快多个变量声明逗号隔开使用数组和对象字面…

jquery --- 监听input框失效

使用juery监听Input输入的变化,并且封装起来,如下: // html <input type"text" id‘myinput1’ /> // js function formOnById(id){let dom # id;$(dom).bind(input propertychange,()>{let item $(dom).val;console.log(item);} } formOnById(myinp…

windows任务计划程序 坑

转载于:https://www.cnblogs.com/kaibindirver/p/8109041.html

第三篇:函数之嵌套

1 #函数的嵌套调用&#xff1a;在调用一个函数的时&#xff0c;其内部的代码又调用其他的函数2 # def bar():3 # print(from bar)4 #5 # def foo():6 # print(from foo)7 # bar()8 #9 # foo() 10 11 12 # def max2(x,y): 13 # if x > y: 14 # ret…

vue路由权限(结合服务端koa2)

gitee地址 一、项目初始化 vue create manager-admin // 创建vue项目// 管理员权限安装 cnpm i -S koa2 // 下载koa2依赖 cnpm install --global koa-generator // 下载框架 koa-generator koa2 manager-server // 创建项目 cd manager-server // 进入项目 npm install // 安…

javascript --- 类、class、事件委托的编程风格

类风格: // 父类 function Widget(width, height) {this.width width || 50;this.height height || 50;this.$elem null; } Widget.prototype.render function($where) {if(this.$elem) {this.$elem.css({width: this.width "px",height: this.height "p…