ES6部分内容

27 阅读2分钟

ES6部分内容

let const

暂时性死区

​ 在块级作用域中,用let或const声明变量后,如果在某个变量声明前使用该变量会抛出异常。

function output(){
    console.log(a);//抛出异常
    let a = 1;
}
output();

rest参数

function add(...arr){//表示不确定数量的参数,用一个数组保存
    let sum = 0;
    arr.forEach(node => sum += node);
   	return sum;
}
add(1, 2, 3, 4, 5);//15

forof

遍历数组

let arr = [1, 2, 3, 4, 5];
for(let num of arr){
    console.log(num);//输出每个arr的值
}

遍历对象

let obj = {
    name:"aoteman",
    age:10,
    sex:"男",
    score:90
}
console.log(Object.keys(obj));//输出键['name', 'age', 'sex', 'score']
console.log(Object.values(obj));//输出值['aoteman', 10, '男', 90]
console.log(Object.entries(obj));//输出[Array(2), Array(2), Array(2), Array(2)]
//分别是0:['name', 'aoteman'],1:['age', 10],2:['sex', '男'],3:['score', 90]

for(let key of Object.keys(obj)){//遍历键
    console.log(key);//name,age,sex,score
    typeof(key);//'string'
}
for(let value of Object.values(obj)){//遍历值
    console.log(value);
}
for(let [key, value] of Object.entries(obj)){
    console.log(key, value);//遍历键值对
    /*
    name aoteman
 	age 10
 	sex 男
	score 90
	*/
}

Set

顾名思义,集合,关键在去重。

let s = new Set([1, 2, 3, 4, 5, 5]);//s[0]等都是undefined
console.log(s);//s:1, 2, 3, 4, 5

for(let item of s.keys()){//s.values()一样
    console.log(item);
    typeof(item);//'number'
    /*
    1
	2
	3
	4
	5
	*/
}
for(let [key, value] of s.entries()){
    console.log(key, value);//遍历键值对
   
    /*
    1 1
	2 2
	3 3
	4 4
	5 5
	*/
}

** **=赋值

let num = 3**2;
console.log(num);//3的2次方,9
num **= 2;//num = num ** 2; =>81

parseInt parseFloat转数字

//parseInt简单来说就是取整,会忽视括号中的空格
parseInt(1.1 );//1
parseInt( 1.9 );//1
parseInt(0.1);//0
parseInt(-1.1);//-1
parseInt(-0.9);//-0
//还会解析字符串中的数组,函数将第一个非空格的字符开始解析为数字,如果解析失败,则返回NaN
parseInt("a 123");//NaN
parseInt("1 a3");//1
parseInt("  23a4");//23
//但它还有第二参数,就是表示进制,如
parseInt("111",2);//将111当作二进制解析成10进制,返回7

//parseFloat和上面的类似,不过更多的是关于浮点数的
//将字符串中的数字解析为浮点数
parseFloat("1.2345");//1.2345
parseFloat("1.2s3a4 5");//1.2
parseFloat(" 10. 0s2s3a4 5");//10

对象简写

//当一个对象的属性名和其对应的变量名或函数名相同时可以只写一次
//简写前:
let age = 10;
let obj = {
    age:age,
    say:function(){
		console.log('我' + this.age + '岁');
    }
}
//简写后:
let age = 10;
let obj = {
    age,
    say(){
        console.log('我' + this.age + '岁');
    }
}