ES6走一波 Proxy/Reflect】的更多相关文章

Proxy:像拦截器,对目标对象修改等进行拦截,是一种元编程(meta programming),即修改JS语言本身. //生成proxy实例,两个参数都是对象,targetObj是要拦截的目标对象,handlerObj参数用来定制拦截行为 var proxy = new Proxy(targetObj, handlerObj) Reflect:将Object对象一些明显的语言内部的方法,放到Reflect对象上. 修改某些Object的方法使返回更合理 1.规范语言 2.是Proxy对象的修改…
ES6字符串扩展: 处理大码点字符 字符的Unicode表示法 \uxxxx表示一个字符串,超出 \u0000 ~ \uffff范围,必须用两个双字节形式表示. ES6改进为 将码点放到大括号 可正确解读 codePointAt() JS字符以 UTF-16 格式存储,每个字符固定为2个字节.需要4个字节的字符,js认为它们是两个字符. codePointAt可正确处理 4 字节存储的字符 由4字节和2字节组成的字符串中 通过for ... of 循环可在第二次拿到2字节字符 codePoint…
Destructuring  变量的解构赋值 是一种模式匹配 ES6我关注点之一是用途  能否举些好例子是检验学习到位的方法之一 交换变量值 函数返回多个值 函数入参为对象.数组,内部使用更简洁 意义: 减少冗余代码 let {a, b} = {'', false} 对同一对象的多次属性获取的优化写法很简洁 let {sin, PI} = Math 变量解构赋值的过程是将值遍历的过程(等号右边的值是一个可遍历解构(实现了Iterator)) 默认值得生效条件: 值严格等于 undefined 捕…
ES6模块设计思想:  尽量静态化,使得编译时就能确定模块的依赖关系,输入.输出的变量.可做静态优化. ES6模块不是对象,而是通过export命令显示指定输出的代码,再通过import命令输入 export命令可出现在模块文件的任何位置,只要处于顶层即可 export default 为模块指定默认输出   import不要大括号 export export default 方法输出模块,import时可方便指定任意名字(不需要“大括号”语法) import 文件路径(绝对.相对)js后缀可省…
Array flat 数组实例的扁平化方法(浏览器支持不佳) 建议使用 lodash的 flatten…
Iterator---> for ... of 循环 Generator函数原生具有 Iterator接口,所以可采用数组的形式解构赋值…
Generator 函数的异步应用 JS异步编程 callback Promise(解决回调地狱) 事件 发布订阅 generator Thunk函数  屁股函数 两次高阶调用的函数 第一次调用的入参作为最终被执行的函数fn,第二次调用的入参解构后和第三次调用的入参(cb)作为最终函数的参数…
//Proxy,Reflect { let obj={ time:'2018-06-25', name:'net', _r:123 }; let monitor = new Proxy(obj,{ //拦截对象属性的读取 get(target,key){ return target[key].replace('2018','2019') }, //拦截对象设置属性 set(target,key,value){ if(key==='name'){ return target[key]=value;…
ES6新特性:Proxy: 要使用的话, 直接在浏览器中执行即可, node和babel目前还没有Proxy的polyfill;,要使用的话,直接在浏览器中运行就好了, 浏览器的兼容性为:chrome>49或者firefox>18: Proxy的基本使用: Proxy如其名, 它的作用是在对象和和对象的属性值之间设置一个代理,获取该对象的值或者设置该对象的值, 以及实例化等等多种操作, 都会被拦截住, 经过这一层我们可以统一处理,我们可以认为它就是“代理器” ; Proxy是一个构造函数, 使…
深入理解MVC   MVC无人不知,可很多程序员对MVC的概念的理解似乎有误,换言之他们一直在错用MVC,尽管即使如此软件也能被写出来,然而软件内部代码的组织方式却是不科学的,这会影响到软件的可维护性.可移植性,代码的可重用性. MVC即Model.View.Controller即模型.视图.控制器.我在和同行讨论技术,阅读别人的代码时发现,很多程序员倾向于将软件的业务逻辑放在Controller里,将数据库访问操作的代码放在Model里. 最终软件(网站)的代码结构是,View层是界面,Con…