ES6新特性
javascript let
javascript const
幂(**)
默认参数值
Array.find()
Array.findIndex()
1.let,const,block
let允许创建块级作用域,ES6推荐在函数汇总使用let定义变量,而非var:
(其实就是let和var的作用差不多,但是let的作用域在一个{}中)
const同样在块级作用域有效的另一个变量声明方式是const,它可以声明一个常量。es6中,const声明的常量类似于指针,它指向某个引用,也就是说这个(常量)并非一成不变的,如:
{
const arr=[5,6];
arr.push(7);
console.log(arr);
arr=10;
}
let关键词声明的变来个不具备 变量提升特性
变量提升:
// 输出 undefined
console.log(a);
var a = 1;
//但是下面的可以正常输出,就是应为变量提升特性
var a;
console.log(a);
a = 1;
let和const声明只在最靠近的一个{}中有效
let和const区别联系
const一旦声明变量,就必须立即初始化,不能留到以后赋值。
const命令只是保证变量名指向的地址不变,并不保证该地址的数据不变,所以将一个对象声明为常量必须非常小心。
2.箭头函数
简化代码
var gerPrice=function(){
}
var gerPrice=()=>{
}
直接使用上级属性
function Person(){
this.age = 0;
setInterval(() => {
// |this| 指向 person 对象
this.age++;
}, 1000);
}
3.函数参数默认值
let getFinalPrice = (price, tax=0.7) => price + price * tax;
getFinalPrice(500); // 850
Spread/Rest操作符
指的是…,
在迭代器中是spread
function foo(x,y,z) {
console.log(x,y,z);
}
let arr = [1,2,3];
foo(...arr);
在函数传值是rest操作符
function foo(...args) {
console.log(args);
}
foo( 1, 2, 3, 4, 5); // [1, 2, 3, 4, 5]