001 ES6 一些要点

 

let 的要点: 

1. 局部作用域

var arr = [];
for(let i = 0 ; i < 10 ; i++){
	//i实际上定义在了循环体中
	arr[i] = function(){
		console.log(i);
	}
}

arr[6]();	//6

  

2. 暂时性死区

var m = 10;
function fun(){
	m = 20;  //报错。函数在预解析阶段会预读所有的语句,发现了let语句,所以就将这个函数变为了一个m的暂时性死区,此时m不允许在let前被赋值。
	let m;

	console.log(m);
}

fun();

  

3. 不存在变量提升

console.log(a); //报错
let a = 10;  

  

const && Object.freeze()

const指向内存中的地址,指向不能改变。指向的内容可以修改。

Object.freeze() 不允许修改值(但只冻结一层)

  

 

ES6中的解构

   1 数组的解构 [ ]

   2 对象的解构 { }

   3 ... rest 剩余运算符使用

 

函数的参数的解构: 

function fun([a,b]){
	console.log(a + b);
}
fun([4,7]);

代替 apply() 函数 function fun(a,b){ console.log(a+b); } fun.apply(null,[4,7]); //11

  

形参列表的解构
function fun(...arr){ let sum = 0; for(let i = 0 ; i < arr.length ; i++){ sum += arr[i]; } console.log(sum); } fun(1,2,3,4); function fun({shuxue,yuwen,yingyu}){ console.log(shuxue + yuwen + yingyu); } var xiaoming = {"name" : "小明" , "age" : 12 , "shuxue" : 10 , "yuwen" :20 , "yingyu" :30}; fun(xiaoming); //60,在计算各个科目的总分。

  

命名解构:

let obj = {"a" : 1 , "b" : 2};
let { a : n , b : m} = obj;
console.log(n);  //1
console.log(m);  //2
console.log(a);  //报错
console.log(b);  //报错

 

 

ES6中的字符串、数组的增强

  includes(), startsWith(), endsWith()

   '★'.repeat(count)

  `  ${vars} `

  

Array.from()   可以将类数组对象变为数组

let obj = {
	"0" : "AAA",
	"1" : "BBB",
	"2" : "CCC",
	length : 3  // 必须存在length 属性,否则无效
};

let arr = Array.from(obj);
console.log(arr);
Array.of()   方法用于将一组值,转换为数组
var arr = Array.of(1,2,3);
console.log(arr);

  

寻找数组中是否有某项find()、findIndex(),里面要放置回调函数

如果没有一个项目返回true的函数,此时就会显示-1

var arr = [3,4,5,34,34,324,342,43,23,30,60,45,34,53];
var item = arr.find(function(value,index,arr){
	if(value % 5 == 0 && value % 6 == 0){
		return true;
	}
});

 

for...of 遍历数组 配合 arr.entries, arr.keys, arr.values (遍历接口)

for...in 遍历对象

解构和遍历综合 (!!!!!)
let arr = ["A","B","C","D","E"]; for(let [k,v] of arr.entries()){ console.log(k,v); }

  

ES6中的对象的增强

var str = "name";
var obj = {
	[str] : "小明",
	age : 10,
	sex : "男"
}
console.log(obj.name);

  

合并对象:

var target = { a: 1 };

var source1 = { b: 2 };
var source2 = { c: 3 };

Object.assign(target, source1, source2);
console.log(target) // {a:1, b:2, c:3}

  

得到对象所有 keys

var obj = {"a" : 1 , "b" : 2 , "c" : 3};
console.log(Object.keys(obj));

  

 

posted @ 2018-11-07 11:24  aocn  阅读(58)  评论(0)    收藏  举报