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));

浙公网安备 33010602011771号