ES6
ES6的出现解决了ES5的一些不足,同时提供了大量的语法糖,可以让我们更舒服的写代码,在之后会持续记录学习ES6的笔记和方法
let和const
在es5中我们在声明变量和常量时是没有做区分的,在es6做了区分,先来看一下具体的使用方法有何不同。
let和var
在es6中let只用来声明变量,和var 的区别需要我们记住的,这个面试可能会用到。
1.let声明的变量不可以重复声明,而var重复声明之后,会覆盖之前所声明的变量。要注意执行代码的顺序。
2.let声明的变量不能变量提升
3.有块状作用域,可以避免一些变量向外泄露
4.let声明的变量不属于顶层对象
const
const主要用于声明常量,使用规则和let区分不大,但是要注意的是const声明的是常量,不可在后续通过其他操作来改变。大家写的时候也有默契, 我们在定义常量的时候也会大写
解构赋值
解构赋值是对我们的赋值运算符的一些拓展,可以让我们在写起来也比较爽
数组
let arr2 = [a, b, c] = [1, 2, 3]
console.log(arr2[2]);
//,是占位符
let arr = ["蓝天", "白云", "沙漠", "盆地"];
let [, , one] = arr; // 这里会取到第三个
console.log([, , one]);
// 解构整个数组
let strArr = [...arr];
// 得到整个数组
console.log(strArr);
对象
在对象这里我们可以直接通过key值在obj中调用到对应的value值
let obj = {
className : "andy",
age: 18
}
let {className} = obj; // 得到andy
let {age} = obj; // 得到18
箭头函数
箭头函数可以说简化了es5的回调函数,基本的语法就是** 参数=>函数体**
当我们需要传入多个参数的时候
//es5函数
var sum = function(a, b) {
return a + b;
}
//es6
let sum = (a, b) => a + b //返回值只有return后面的数值,花括号和return都可以去掉
当我们传入一个参数的时候
var six = function(n) {
return n ** 6;
}
let six = n => n ** 6 //只有一个参数的时候,小括号也可以省略
//反转字符串
let reveresString = string => string.split('').reverse().join('')
这里有一个箭头函数this的指向问题
在这里箭头函数本身没有作用域(无this),箭头函数的this指向上一层,上下文决定其this