JavaScript学习随记
ES6学习
罐子丶
这个作者很懒,什么都没留下…
展开
-
10-正则表达式(Regular Expression)
目录1. 正则创建1-1. 方式一:字面量创建1-2. 方式二:构造函数创建1-3. 全局匹配 — g1-4. 创建方式的选取2. 正则方法 — Reg.function()2-1. test()2-2. exec()3. 字符串方法 — String.function()3-1. split()3-2. replace()3-3. search()3-4. match()1. 正则创建1-1. 方式一:字面量创建\正则表达式\let str = "andhhasdjh125563jkhh";原创 2020-09-29 16:16:16 · 1126 阅读 · 0 评论 -
09-Generator——async和await的实现原理
目录1. Generator2. 用Generator实现async和await1. Generator使用 function* 语法和一个或多个 yield 表达式以创建一个函数即为生成器,它的返回值就是一个迭代器即生成器;其实整个 Generator 函数就是一个封装的异步任务,或者说是异步任务的容器;异步操作需要暂停的地方,都用 yield 语句注明function* fn(x) { let y = yield x + 2; y = yield x * 8; re原创 2020-09-28 20:05:42 · 227 阅读 · 0 评论 -
08-Symbol.iterator迭代器
目录1. 迭代器2. 采用Symbol.iterator实现某个类型的迭代的模板3. 采用Symbol.iterator实现Object类型的迭代1. 迭代器 Symbol.iterator 为每一个对象定义了默认的迭代器。该迭代器可以被 for…of 循环使用。 当需要对一个对象进行迭代时(比如开始用于一个for…of循环中),它的@@iterator方法都会在不传参情况下被调用,返回的迭代器用于获取要迭代的值。 如Array类型:let array = ["a", "b", "c", "原创 2020-09-28 19:18:29 · 314 阅读 · 0 评论 -
07-ES6模块化
目录1. 模块化2. 模块化示例1. 模块化每个模块有自己独立的作用域若没有将模块中的变量导出,则模块外的代码无法获得该变量模块化的目的:防止变量污染2. 模块化示例export default - 只能导出一个变量...原创 2020-09-28 14:44:47 · 75 阅读 · 0 评论 -
06-实现Vue数据劫持
目录1. 数据劫持1. 数据劫持 当访问或设置对象的属性的时候,都会触发相对应的函数,然后在这个函数里返回或设置属性的值。既然如此,可以在触发函数的时候动一些手脚做点我们自己想做的事情,这也就是“劫持”操作; 给数据添加监听,一旦数据发生变化,就执行视图的修改操作,这个过程就是数据劫持...原创 2020-09-26 19:12:32 · 271 阅读 · 0 评论 -
05-ECMAScript6异步专题
目录1. 同步和异步1. 同步和异步同步和异步是一种消息通知机制,而阻塞是对主体而言的同步阻塞: A调用B,B处理获得结果,才返回给A。A在这个过程中,一直等待B的处理结果,没有拿到结果之前,需要A(调用者)一直等待和确认调用结果是否返回,拿到结果,然后继续往下执行。( 做一件事,没有拿到结果之前,就一直在这等着,一直等到有结果了,再去做下边的事)异步非阻塞: A调用B,无需等待B的结果,B通过状态,通知等来通知A或回调函数来处理。(做一件事,不用等待事情的结果,然后就去忙别的了,有了结果,再原创 2020-09-24 11:00:07 · 275 阅读 · 0 评论 -
04-组件样式模板——以弹窗为例
目录1. 组件编写原则2. 封装JS3. 合并配置`Object.assign(a,b)`4. 页面渲染5. 功能实现-显示弹窗6. 功能实现-关闭弹窗`extends EventTarget类`7. 继承—弹窗增加对话框功能8. 子类将值传给父类—传递对话框中的内容`confirm()`9. 完整代码1. 组件编写原则对内:封闭对外:开放(API、配置 )2. 封装JSclass Dialog { constructor(options) { this.opts =原创 2020-09-22 11:18:07 · 65 阅读 · 0 评论 -
03-自定义事件MyEvent
目录1. 自定义事件绑定addEvent2. 自定义事件触发trigger3. 自定义事件移除removeEvent4. 包装成类5. 使用1. 自定义事件绑定addEventlet handel = {};function addEvent(eventName, fn) { if (typeof handel[eventName] === "undefined") { handel[eventName] = []; } handel[eventName].p原创 2020-09-22 08:54:03 · 1119 阅读 · 0 评论 -
02-ECMAScript6面向对象
目录1. 继承1.1 继承的三种方式1-2. 继承原型1-3. 深拷贝继承1-4. 继承原型与深拷贝继承2. 原型链3. ES类4. ES6类继承4-1. 继承父类4-2. 重写方法不覆盖父类的方法1. 继承1.1 继承的三种方式function Dad(height){ this.name = "张三"; this.age = 20; this.height = height; this.money = "$1000000";原创 2020-09-19 20:32:36 · 132 阅读 · 0 评论 -
01-ECMAScript6基础
目录1. let和const1-1. var和let的区别1-2. const2. 解构赋值2-1. 对象解构赋值2-2. 数组结构赋值2-3. 字符串解构赋值3. 展开运算符("...")3-1. 数组展开3-2. 对象展开;4. Set 对象4-1. Set对象的数据结构4-2. Set对象的相关属性与方法5. Map 对象5-1. Map对象的数据结构5-2. Map对象的相关属性与方法1. let和const1-1. var和let的区别var(变量): a.var可以重复声明原创 2020-09-14 15:32:16 · 646 阅读 · 0 评论 -
菜罐的JavaScript学习随记(二)
目录1.换行1.换行HTML中:<br>对话框中:\n原创 2020-08-30 19:21:11 · 76 阅读 · 0 评论 -
菜罐的JavaScript学习随记(一)
1.立即调用的函数表达式 <script> (function(){ //使代码都在该作用域下执行,不污染window环境 })() </script>2.节点遍历包含空白节点firstChildlastChildnextSiblingpreviousSiblingchildNodes[]不包含空白节点(仅元素节点)firstElementChildlastElementChildnextElementS原创 2020-08-10 18:51:21 · 132 阅读 · 0 评论