ES6知识点总结

本文介绍了ES6中的let和const声明变量的方式,强调它们的块级作用域和非重新声明特性。let防止变量提升,const用于定义常量。此外,还讨论了模板字符串的使用以及函数的默认参数、剩余参数和箭头函数的语法改进。
摘要由CSDN通过智能技术生成

let和const

1.let声明变量,没有变量提升

console.log(a); //2
var a = 2;
console.log(b); //报错
let b = 2; 

2.let是一个块作用域

if(1===1){
	var a = 1;
	let b = 1;
}
console.log(a); //1
console.log(b); //报错

3.let不能重复声明

var a = 2;
var a = 4;
console.log(a); //4 会覆盖第一个a
let b = 1;
let b = 3;
console.log(b); //报错 

4.const声明变量

const max = 30; //声明常量
max = 40; //不允许被修改
console.log(max); //报错
const person = {
	name : 'yt'
}
person.name = 'aaa';
console.log(person); //name:'aaa' 可以修改对象的属性但是不能修改对象
person = {
	age : 22
}
console.log(person); //会报错

作用1:for循环经典例子

var arr = [];  
for (var i = 0;i < 10; i++){
	arr[i] = function () {
		return i;
	}
}
console.log(arr[5]()); //10  i变量提升,污染全局
const arr = [];  
for (var i = 0;i < 10; i++){
	arr[i] = function () {
		return i;
	}
}
console.log(arr[5]()); //5

作用2:不会污染全局变量

let RegExp = 10;
console.log(RegExp);
console.log(window.RegExp);

在默认情况下用const,而只有在知道变量值需要被修改的情况下使用let

模板字符串

使用反引号``,插入变量时使用${变量名}

const oBox = document.querySelector('.box')
let id = 1,name = '小马哥';
let htmlStr = `<ul>
	<li>
		<p id=${id}>${name}</p>
</ul>`;
oBox.innerHTML = htmlStr;
//oBox.innerHTML = "<ul><li><p id=" + id + ">" + name + "</p></li></ul>"

函数之默认值、剩余参数

1.带参数默认值的函数

//es5的写法
function add(a, b){
	a = a || 10;
	b = b || 20;
	return a + b;
}
console.log(add());

function add2(a = 10, b = 20){
	return a + b;
}
console.log(add2())

2.默认的表达式也可以是一个函数

function add(a, b = getVal(5)) {
	return a + b;
}

function getVal(val) {
	return val + 5;
}
console.log(add(10)); //20

3.剩余参数
有三个点…和一个紧跟着的具名参数指定 …keys

ES6中引用了rest parameter,可以将不定数量的参数放入到一个数组

function pick(obj,...keys){ //keys可以随意命名,建议具名
	// ...keys 解决了arguments的问题
	let result = Object.create(null); //创建了一个空对象,同{}一样
	for (let i = 0; i < keys.length; i++){
		result[keys[i]] = obj[keys[i]];
	}
	return result;
}

let book = {
	title: 'es6的教程',
	author: '小马哥',
	year: 2019
}
let bookData = pick(book,'year','author');
console.log(bookData)

剩余参数与arguments区别:
1.剩余参数只包含那些没有对应形参的实参,而arguments对象包含了传给函数的所有实参。
2.arguments对象不是一个真正的数组,而剩余参数是一个真正的数组,可以进行数组的所有操作。
3.rest参数是ES6中提供 并且希望以此来替代arguments的。

函数之扩展运算符、箭头函数

1.扩展运算符…
剩余运算符:把多个独立的合并到一个数组中
扩展运算符:将一个数组分割,并将各个项作为分离的参数传给函数

// 处理数组中的最大值,使用apply
const arr = [1,3,9,5,4,6,7,10];
console.log(Math.max.apply(null,arr));

// es6 扩展运算符更方便
console.log(Math.max(...arr));

2.箭头函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雷旭4466

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值