随笔分类 -  前端:ES6 & ES next

ESNext中,父类和子类的构造函数constructor中都声明了:this.log = log4javascript.getLogger(),会报错:Exception: Converting circular structure to JSON
摘要:ESNext中,父类和子类的构造函数constructor中都声明了:this.log = log4javascript.getLogger(),会报错:Exception: Converting circular structure to JSON 阅读全文

posted @ 2023-03-29 10:48 cag2050 阅读(22) 评论(0) 推荐(0) 编辑

es 中的 Set 和 Map
摘要:Set 函数可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数,用来初始化。 阅读全文

posted @ 2017-10-11 16:11 cag2050 阅读(217) 评论(0) 推荐(0) 编辑

es 中的 Iterator
摘要:for...in 遍历(当前对象及其原型上的)每一个属性名称,而 for...of 遍历(当前对象上的)每一个属性值 ES6 规定,默认的 Iterator 接口部署在数据结构的Symbol.iterator属性,或者说,一个数据结构只要具有Symbol.iterator属性,就可以认为是“可遍历的 阅读全文

posted @ 2017-10-11 15:52 cag2050 阅读(156) 评论(0) 推荐(0) 编辑

es 之 Symbol
摘要:ES5 的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突。如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突。这就是 ES6 引入Symbol 阅读全文

posted @ 2017-10-11 15:15 cag2050 阅读(130) 评论(0) 推荐(0) 编辑

import()、import语句、require() 区别
摘要:import命令能够接受什么参数,import()函数就能接受什么参数,两者区别主要是后者为动态加载。 import() 与 import语句 区别 区别项 | import() | import语句 | | 参数都一样 | | 是否动态加载 | 是 | 不是 与所加载的模块是否有静态连接关系 | 阅读全文

posted @ 2017-09-26 15:48 cag2050 阅读(263) 评论(0) 推荐(0) 编辑

变量的解构赋值
摘要:数组的解构赋值 完全解构、不完全解构 如果等号的右边不是数组(或者严格地说,不是可遍历的结构,参见《Iterator》一章),那么将会报错。 解构赋值允许指定默认值。 注意,ES6 内部使用严格相等运算符(===),判断一个位置是否有值。所以,如果一个数组成员不严格等于undefined,默认值是不 阅读全文

posted @ 2017-09-25 15:46 cag2050 阅读(156) 评论(0) 推荐(0) 编辑

commonJS、AMD、es模块化 区别(表格比较)
摘要:commonJS、AMD、es6模块化 区别(表格比较): table th:first of type { } table th:nth of type(3) { width: 150px; } table th:nth of type(4) { width: 150px; } 区别项 | es模 阅读全文

posted @ 2017-09-20 17:06 cag2050 阅读(1050) 评论(0) 推荐(0) 编辑

let、var、const区别(表格比较)
摘要:let、var、const区别(表格比较): 区别项 | let | var | const | | | 作用域 | 块级作用域 | 全局作用域或函数作用域 | 块级作用域 是否有变量提升 | 无 | 有 | 无 是否可重复声明 | 不可 | 可以 | 不可 是否属于顶层对象的属性 | 不属于 | 阅读全文

posted @ 2017-09-18 16:59 cag2050 阅读(487) 评论(0) 推荐(0) 编辑

es6比es5节省代码的地方总结
摘要:对象方法简写: es5写法: es6写法(方法定义里,少写了冒号和function): 阅读全文

posted @ 2017-09-18 16:44 cag2050 阅读(166) 评论(0) 推荐(0) 编辑

Promise 知识点
摘要:.done() Promise 对象的回调链,不管以then方法或catch方法结尾,要是最后一个方法抛出错误,都有可能无法捕捉到(因为 Promise 内部的错误不会冒泡到全局)。因此,我们可以提供一个done方法,总是处于回调链的尾端,保证抛出任何可能出现的错误。 promise 理解: 1. 阅读全文

posted @ 2017-09-18 16:10 cag2050 阅读(211) 评论(0) 推荐(0) 编辑

async(await)知识点
摘要:async 函数是 Generator 函数的语法糖。 async 函数对 Generator 函数的改进体现在: 1. async 内置执行器。 Generator 函数的执行必须靠执行器,需要调用 next() 方法,或者用co 模块; 而 async 函数自带执行器。也就是说,async 函数 阅读全文

posted @ 2017-09-18 14:41 cag2050 阅读(264) 评论(0) 推荐(0) 编辑

Generator 知识点
摘要:Generator 函数的执行过程,其实是将同一个回调函数,反复传入 next 方法的 value 属性。 Iterator 接口的 next 方法必须是同步的,只要调用就必须立刻返回值。也就是说,一旦执行next方法,就必须同步地得到value和done这两个属性。 如果遍历指针正好指向同步操作, 阅读全文

posted @ 2017-09-18 14:20 cag2050 阅读(118) 评论(0) 推荐(0) 编辑

箭头函数中的 this
摘要:JS 每一个 function 都有自己独立的运行上下文,但箭头函数不属于普通的 function,所以没有独立的上下文。 所以在箭头函数里写的 this 其实是包含该箭头函数最近的一个 function 上下文中的 this(如果没有最近的 function,就是全局)。 阅读全文

posted @ 2017-06-29 17:11 cag2050 阅读(184) 评论(0) 推荐(0) 编辑

模块化比较
摘要:es6 的 import 语法跟 require 不同,而且 import 必须放在文件的最开始,且前面不允许有其他逻辑代码,这和其他所有编程语言风格一致。 import不同与require,它是编译时的(require是运行时的),它必须放在文件开头,而且使用格式也是确定的。它不会将整个模块运行后 阅读全文

posted @ 2017-04-25 10:02 cag2050 阅读(137) 评论(0) 推荐(0) 编辑

对象的扩展
摘要:es6新增加:对象字面量简写(Object Literal Shorthand)、对象方法简写(Object Method Shorthand)、计算对象键(Object key) es5对象字面量: es6对象字面量: ES5返回一个对象 ES6返回一个对象 在 ECMAScript 2015 之 阅读全文

posted @ 2017-04-16 00:04 cag2050 阅读(191) 评论(0) 推荐(0) 编辑

es6知识点
摘要:扩展运算符(三个点): 将值转换为参数序列。 解构赋值:比如:var [a,b,c]=[1,2,3]; 阅读全文

posted @ 2017-03-09 14:31 cag2050 阅读(131) 评论(0) 推荐(0) 编辑

next().value和next().done
摘要:function* sayHello() { var first, second; yield first = '111'; yield second = '222'; yield third = '333'; } var say = sayHello(); console.log(1); console.log('第一个yield的值:' + say.next(... 阅读全文

posted @ 2016-12-09 01:07 cag2050 阅读(892) 评论(0) 推荐(0) 编辑

fetch用法
摘要:1. fetch(url),返回一个Promise。 2. 当Promise被通过,它会返回一个Response对象,通过该对象的json()方法可以将结果作为JSON对象返回。 3. response.json()同样会返回一个Promise对象,因此在我们的例子中可以继续链接一个then()方法 阅读全文

posted @ 2016-11-27 23:44 cag2050 阅读(261) 评论(0) 推荐(0) 编辑

ES6 中的 Set、Map 和 WeakMap
摘要:Set 是 ES6 新增的有序列表集合,它不会包含重复项。 Set 支持 add(item) 方法,用来向 Set 添加任意类型的元素,如果已经添加过则自动忽略; has(item) 方法用来检测 Set 中是否存在指定元素; delete(item) 方法用来从 Set 中删除指定元素; clea 阅读全文

posted @ 2016-10-24 18:37 cag2050 阅读(178) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示