ECMAScript6
来源:互联网 发布:中国广电网络缴费 编辑:程序博客网 时间:2024/05/17 07:40
Function用法
箭头函数的 this 始终指向函数定义时的 this,而非执行时var f = (o) => { return o + 2;}var f = (o) =>o + 2;console.log(f(5));console.log((o=>o + 2)(98));
遍历数组
var arr = [213,23,31,12];arr.sb = 'fug';for (let v in arr){//for in 会将后面添加的遍历出现,不建议使用 console.log(v+"="+arr[v]);}//传统for和for of 不会遍历出现sb='fug';//let 作用域仅仅是在for语句里面for (let i =0 ;i<arr.length;i++){ console.log(arr[i]);}for (let v of arr){ console.log(v);}
类语法
class A { constructor() { this._r = 5000; } fn() { console.log("这是f的方法"); } static f2(){ console.log("这是F2的方法"); } get i(){//属性访问器 return this._r; } set i(y){//添加set方法才可以修改 this._r = y; }}var a = new A(5, 9);a.fn();//这是f的方法A.f2();//静态方法a.i = 5;//修改i,必须配合setconsole.log(a.i);//不是5000class C extends A{ // constructor() {子类不能写构造方法 // } fn(){ //重写 super.fn();//super指向A中的fn(),但是super不一定必须放在首位 console.log("这是CCC的方法"); }}var c = new C();c.fn()
设置私有
var A = (function () { var i = Symbol(); return class A{ constructor(){ this[i] = 3000; } f(){ console.log("这是F的方法"); } get i(){ return this[i]; } }})();var a = new A();a.i = 5; //直接赋值不行console.log(a.i); //3000
代理Proxy
var target ={i:5,j:'abc'}//代理,第一个参数是目标,var proxy =new Proxy(target,{ get : function (target,name) { return target[name]+'加了'; }, set : function (target,name,value) { target[name] = value; return true; }});proxy.i = 'faeswqe';console.log(proxy.i,proxy.j);
迭代器
var arr = [213, 4, 2, 15];var iter = arr[Symbol.iterator]();console.log(iter.next());console.log(iter.next());console.log(iter.next());console.log(iter.next());console.log(iter.next());//自定义迭代器var o ={ i : 0, next : function () { return {value: this.i++,done:this.i>5} }}//Symbol.iteratordie迭代器属性,属性是函数,return本身//返回值一定要value,doneo[Symbol.iterator] =function () { return this;}for(let v of o){ console.log(v);}
迭代生成器
//yield相当于return,是暂定执行// 再次调用f()会继续执行function* f() { var i = 5; i++; yield i; i++; console.log('中间'); yield i;}for(let v of f()){ console.log(v);}
Set,Map
var set = new Set();set.add(1);set.add(2);set.add(1);set.add(1);console.log(set);// Set { 1, 2 }var map = new Map();map.set('1','斩杀');map.set('2','毒杀');console.log(map);//Map { '1' => '斩杀', '2' => '毒杀' }for(let v of map.keys()){ console.log(v,map.get(v));}//1 斩杀//2 毒杀
0 0
- ECMAScript6
- ECMAScript6
- ECMAScript6
- ECMAScript6
- ECMAScript6
- ECMAScript6
- ECMAScript6
- ECMAScript6
- ECMAScript6笔记:ECMAScript6简介
- ECMAscript6 set
- ECMAscript6 map
- ECMAScript6 Promise
- ECMAScript6 async
- ECMAScript6/ES6
- ECMAScript6 Promise
- ECMAScript6 规范
- ECMAScript6 规范
- ECMAScript6入门
- java写一个程序给保龄球比赛计分的程序
- 项目开发:SSH 之“department”模块从零开发
- 关于事务的一些基本
- poj 1328 贪心 转化
- 股市成交量
- ECMAScript6
- 关于Android数据库—realm的使用及理解
- Android studio git忽略文件
- SublimeText3使用笔记
- 【APIO2016】uoj206 Gap
- java语言基础(49)——匿名内部类的本质理解
- 【快斗】JavaScript 图片弹窗
- java实现gzip
- Linux文件管理(1)——文件类型和文件属性