es6新标准一

一、关于let和const以及块作用域

   块级作用域是es6新增内容,作用是将模块化的内容独立开,可以配合let使用,块级内的内容可以不受其他块级的影响,let是新的声明方法,类似于var,但是let申明的变量只在块级作用域内有效

var a = [];
for (var i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
console.log(a[6]()); // 10


var a = [];
for (let i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
console.log(a[6]()); // 6

这里的输出是不同的,前者for循环里的i用全局变量定义,每一次的循环,都会改变i值, 这里的i是同一个,二后者的i使用let定义,只在当前块级(当前循环)有效,可以这么理解,这里的i有10个,并且都会被记录,这种新的定义方式,在某些时候会非常有效,比如,因为全局变量会引起堆栈,如果大量使用,会造成性能上的“硬伤”。

const就类似于其他语言的“常量”,一旦定义就不能被改变,并且也只在块级作用域内有效。

二、解构赋值

    解构赋值,是一种新的赋值方式,可以简化原有的赋值方式

//es5
var a=1;
var b=2;
var c=3;

//es6
var [a,b,c] = [1,2,3]

这种赋值可以大大简化代码,并且提高可读率;解构赋值的核心就是“匹配模式”,等号两边的模式必须相等,否者会出现错误。

解构赋值常用语对数组、对象、函数返回多个值得情况,具体如下:

//数组
var arr=[1,2,3,4];

var [f,s,t] = arr;//f=1,s=2,t=3

//对象
 
var Person  ={
	name:"aaa",
	age:"12",
};
		
function add({name,age}){
	console.log(name,age);
};
add(Person);//aaa 12
//使用这种方法,可以返回多个参数是对象的成员


//如果函数返回多个值,优先使用对象的解构赋值

function sum() {
	return [1,2,3,4];
};
var [a,b,c,d] = sum();
console.log(a,b,c,d);

三、数组的扩展

数组在es6,加了不少东西,比如可以直接将类数组直接转换为数组的方法,以前只能使用数组的原型方法:Array.prototype.slice.call(),但是现在可以直接使用Array.form()方法,以及将一组值转换成数组Array.of(),find()/findIndex(),是新增的筛选方法.

我认为最重要的还是扩展运算符(...),他的作用是可以将数组转成一个个独立的值

var arr = [1,2,3,"a","b","c"];
console.log(...arr);//1 2 3 "a" "b" "c"

扩展运算符主要用于函数的调用和传参

function push(arr,...items){
	arr.push(...items);
	console.log(arr);
};
var p =[];
push(p,1,2,3,4);

function add(x,y){
	return x+y;
};
var number = [14,15];
add(...number);
console.log(add(...number));

四、函数的扩展

比较复杂,暂时不写!

转载于:https://my.oschina.net/u/3470995/blog/1538394

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值