ES6
时光之里
Before Dawn
展开
-
es6的set map weakmap weakset以及js的内存泄漏
什么是内存泄漏?程序的运行需要内存。只要程序提出要求,操作系统或者运行时就必须供给内存。对于持续进行的服务进程(daemon),必须及时释放内存,否则内存占用会越来越高,影响系统性能,直至进程崩溃。 所以,不再用到的内存,没有及时释放,就叫做内存泄漏(memory leak)有些语言,比如C语言,必须手动释放内存,程序员负责内存管理。char * buffer;bu...原创 2018-03-20 23:47:09 · 2369 阅读 · 0 评论 -
ES7、ES8、ES9、ES10新特性大盘点
ES7Array.prototype.includes()方法之前:indexOf() find() findIndex()求幂运算符**代替 Math.pow()ES8Async/Await使用同步代码实现异步访问资源的能力Object.values(),Object.entries()遍历对象,供 for…of 使用String paddin...原创 2019-12-16 12:04:15 · 298 阅读 · 0 评论 -
ES基础
ECMAScriptES 与 JSJS 为了让自己成为国际标准给了 ECMA 组织,ECMA 组织创立了浏览器脚本语言的标准,也就是 ES。ES 是 JS 的标准;JS 是 ES 的实现。ES6 与 ES2015ES2015 是小版本迭代;ES6 泛指下一代 js 语言,也就是 ES2015、ES2016、ES2017 等。let & const概念:规定了变量的...原创 2019-06-05 15:45:53 · 288 阅读 · 0 评论 -
20190521 基于数据劫持的双向绑定方法 Object.defineProperty 与 Proxy
双向绑定的方法KnockoutJS 基于观察者模式(发布-订阅)的双向绑定Ember 基于数据模型的双向绑定Angular 基于脏检查的双向绑定基于数据劫持的双向绑定 (重点讲解)Object.definePropertyProxy数据劫持数据劫持的优点不需要显示的调用比如:Vue 利用数据劫持+发布订阅,可以直接通知变化并且驱动视图可以精确得知变化数据我...原创 2019-05-22 14:30:43 · 303 阅读 · 0 评论 -
ES6中的 Proxy 和 Reflect
Proxy含义在目标对象之前架设一层 拦截 ,访问该对象时必须经过这层拦截,对外界的访问进行过滤和改写let obj = new Proxy( {}, { get: function(target, key, receiver) { console.log(`get ${key}`); return Reflect.get(target, key, r...原创 2019-05-22 14:23:32 · 294 阅读 · 0 评论 -
《understanding ESMAScript 6》之promise 和异步编程( Promises and Asynchronous Programming)
异步编程的背景 (Asynchronous Programming Background)js 的引擎建立在单线程事件轮询( single threaded event loop)概念之上。单线程意味着在一段时间内只能执行一段代码。所以我们不需要追踪这些运行的代码,而是在他们准备好执行时将他们放置到任务队列(job queue)。当代码由 js 引擎执行完毕后,引擎通过 event loo...原创 2018-04-22 18:44:51 · 169 阅读 · 0 评论 -
《understanding ESMAScript 6》之类 ( introducting javascript classes)
类 introducing javascript classeses5 中的类结构 class-like structures in ecmascript5// 创建一个构造函数function PersonType(name) { this.name = name;}// 在构造函数的原型上添加方法PersonType.prototype.sayName = fun...原创 2018-04-22 17:14:10 · 178 阅读 · 0 评论 -
ES6中的迭代器(Iterator)与生成器(Generator)
迭代器和生成器 iterators and generators转变: 迭代集合中的数据不需要再使用初始化变量作为索引的for循环,转而使用iterators对象来程序化的返回集合中下一个位置的项。优点: iterators使得集合的操作变得更容易高效处理数据的关键: 迭代器,数组方法,新增的集合类型(set,map)结合使用es6中iterators的身影: for-of循环, 扩展(...原创 2018-03-28 23:27:28 · 1011 阅读 · 0 评论 -
ES6的Generator函数
/** * 一个Generator函数 是一个状态机,封装多个内部状态 * 返回 : 一个遍历器对象,可以依次遍历 Generator 函数内部的每一个状态。 * 形式上: 1.function* 2.函数内部使用yield表达式 (暂停执行的标记) * 区别于普通函数:调用 Generator 函数后,该函数并不执行,返回的也不是函数运行结果,而是一个指向内部状态的指针对象 */...原创 2018-03-19 23:29:34 · 183 阅读 · 0 评论 -
ES6处理数据的方法
一、字符串repeatrepeat方法返回一个新字符串,表示将原字符串重复n次。"hello,".repeat(3); // hello,hello,hello,includes & startsWith & endsWithincludes : 是否找到参数字符串,返回布尔值;startsWith: 参数字符串是否在原字符串的头部,返回布尔值。...原创 2018-03-19 22:59:12 · 1399 阅读 · 0 评论 -
ES5新特性—严格模式
ES5新特性——严格模式目的消除语法不合理、不严谨消除运行不安全提高速度 ?新版本模块化做铺垫 语法 "use strict"//是一个指令,指示解释器用更严格的方式检查代码如何调用针对整个脚本文件:放在脚本文件的第一行 <script> "use strict" a = 3 console.log(a) //报错 <原创 2017-05-04 22:08:22 · 665 阅读 · 0 评论