
ES6
文章平均质量分 88
xiaozhu_personal
github.com/xiaohesong/til
展开
-
babel改变es6解构赋值
概述大家都知道ES6的解构,有时也会在解构的时候进行赋值默认值。不过不知道大家是不是注意到,有时候的赋值是不生效的。看个例子:const user = {name: 'xiaohesong', age: null, sex: ''}const {name, age = 18, sex = 'man', gf = 'lzl'} = userconsole.log(name, age, sex, gf) 大家都知道上面由于规范的原因会输出什么内容。https://developer.mozi原创 2020-07-01 14:00:41 · 1308 阅读 · 0 评论 -
完整详细的es6 class
原文es6 classclass基本声明在说class之前,想必大家肯定会想到constructor function. 看下面代码:function Foo(name) { this.name = name}class Bar { constructor(name){ this.name = name }}f = new Foo('xhs')...原创 2018-09-11 21:33:52 · 520 阅读 · 0 评论 -
ES6 代理和反射
此文出处简介proxyproxy可以拦截目标(target)上的非内置的对象进行操作,使用trap拦截这些操作,trap是响应特定操作的方法。reflectionreflection是通过Reflect对象表示,他提供了一些方法集,为代理proxy提供默认行为。下面是一些proxy trap和Reflect方法,每个proxy trap都有提供对应的Reflect方法,他们...原创 2018-09-29 10:55:26 · 694 阅读 · 0 评论 -
ES6 Block Binding
es5和es6的区别里,关于块级绑定是被津津乐道的。之前没有记录,今天就把它记录下来。我们知道var会有变量提升。es6的let和const可以避免这个,且会生成块级作用域。块级声明function里面块内(由{和}字符表示)let 声明function getValue(condition) { if (condition) { let value =...原创 2018-10-15 11:31:52 · 255 阅读 · 0 评论 -
你真的了解 ES6 Modules
什么是模块模块就是javascript文件以不同方式去加载(这个就和scripts的方式相反了,scripts是以原始的javascript工作方式加载的)。这种不同的模式很有必要,并且他们代表的语义也是不一样的:模块模式会自动运行在严格模式下,没有办法选择。模块顶层创建的变量不会共享到全局范围,仅在模块的范围内。模块的顶层的this值是undefined。模块不允许在代码中使用HTM...原创 2018-09-30 17:00:44 · 478 阅读 · 0 评论 -
ES6的Symbol竟然那么强大
之前本文发表于掘金symbol是es6出的一种类型,他也是属于原始类型的范畴(string, number, boolean, null, undefined, symbol)basiclet name = Symbol('xiaohesong')typeof name // 'symbol'let obj = {}obj[name] = 'xhs'console.log(obj[n...原创 2018-11-05 10:29:50 · 2680 阅读 · 2 评论 -
Understanding ES6 -- 深入理解ES6书籍
understanding es6 – Nicholas C. Zakas块级绑定function拓展对象功能解构symbolSets and MapsIterators and Generatorsclass改进的数组promise代理和反射 – Proxy&Reflectionmodules附录A – 小的改变附录B – undestanding es7...原创 2019-02-16 12:10:57 · 735 阅读 · 0 评论