-
ES6进阶指导
查看全部 -
搭建环境准备
查看全部 -
ES6进阶指导
查看全部 -
ES6课程内容:
常量
作用域
箭头函数
默认参数
对象代理
查看全部 -
不让ES5自动变成ES6的语法:‘/* eslint-disable */’
ES6的常量写法:const 常量名=值;
ES6的作用域:‘let’、 ‘{ }’
箭头函数:()=>{ }
箭头函数中this的作用域是指向定义函数的实例
而普通函数中的this作用域是指向其上一级
数组遍历:let add=数组名.map(v=>v+1); console.log(add);
ES6默认值:
在函数声明的时候就赋予了初始值,
function f(x,y=9,z=10){ return x+y+z}
判断x是否赋值:
function check(){ throw new Error('can\'t be emptry')}
function f(x=check(),y=9,z=10){ return x+y+z}
ES6合并数组:
var param=['hello',true,1];
var other=[1,2,...param];
ES6可变参数:
function f(...a){
var sum=0;
a.forEach(item=>{sum+=item*1});
return sum;
} //调用函数,f(1,2,3,4)
ES6对象代理,保护数据:
let Person={name:'es6',sex:'male'};
let person=new Proxy(Person,{
get(target,key){return target[key]},
set(target,key,value){if(key!=='sex'){target[key]=value;}}
})
查看全部 -
es6环境搭建
查看全部 -
通过代理层对原始对象进行读写,保护原始数据:
proxyer 代理层暴露给用户的时候不能直接操作proxy原始数据,只能操作proxyer ,从而达到保护原始数据的效果
查看全部 -
ES6 进阶:
查看全部 -
// ES5合并数组: arr1.concat(arr2); // ES6 合并数组: var arr1 = ['hello',true.7]; var arr2 = [1,2,...arr1]; console.log(arr2);
查看全部 -
1.arguments 不是真正意义上的数组,ES5转化成数组:
var a = Array.prototype.slice.call(arguments); 后方可使用数组的方法forEach();
2. ES6 可变参数:...a
查看全部 -
{ function checkParam(){ // 检测必要参数有没有传入 throw new Error('can\'t be empty'); } function f(x = checkParam(),y = 3,z = 5){ return x + y + z; } console.log(f(1)); // try{ f();// 没写必要参数 } catch(err){ console.log(err); } finally{ } }
查看全部 -
ES6 默认参数的写法:
function f(x,y = 3,z = 5){ return x + y + z; } console.log(f(1));//9 console.log(f(1,2));//8
查看全部 -
箭头函数体中this的指向是定义时this的指向。
如此处b:()...在定义时“this.a”中this指向的是factory函数体中d的this,而factory函数体中d的this指向的是构造函数的实例。所以这里最终输出结果为"a"
{ var factory = function(){ this.a = "a"; this.b = "b"; this.c = { a: "a+", b: () => { return this.a } } } console.log(new factory().c.b()); // a }
查看全部 -
ES6 const 定义常量(只能只读,不能写入)
查看全部 -
普通函数中this 的指向是该函数被调用的对象。
如这里函数b()被对象c调用,this就指向对象c。
查看全部
举报