ES6简介
- ECMAScript是javascript标准
- ES6就是ECMAScript的第6个版本
- ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。
ES6新增加的功能:
1.let就是限制作用域中的var{ },只能在花括号内的使用
let es = function() { let num = 10 //结果是10 console.log('函数内的num', num) } //结果是报错,因为let声明的变量只能在{}内有效 console.log('函数外的num', num)
2.const 用变量来声明一个变量,这个变量只能在声明的时候被赋值,后续不可以用值对他进行覆盖
let es2 = function() { const value = 10 //结果是10 console.log(value) const value = 20 //会报错,因为const只能在声明的时候赋值,不可以重新赋值 console.log(value) } es2()
3.set在其他语言里称之为集合,是一种类似于array和object的数据类型,不同之处在于set的元素都是不重复的
//创建一个set集合 var s = new Set() //add是添加元素 s.add(1) s.add('gua') //size是查看集合长度 s.size //has是用来检查是否存在某个元素,结果是个布尔值,true或false s.has(1) //delete是删除一个元素 s.delete(1)
4. (...叫拓展符号),作用是吧数组1解开成单独的元素
//先新建一个数组array let array = [1, 3, 6, 4 ,5, 9] //...是拓展符号,把数组解开成单独的元素 let arr = {...array}
5.解包,是从python中学来的特性
//解包 //可以给多个变量赋值 var [a, b] = [1, 2] //a = 1 b = 2 console.log(a, b) //a=b b=a [a, b] = [b, a] //(2) [2, 1] // 0: 2 // 1: 1 // length: 2 // [[Prototype]]: Array(0)
6.函数的默认值
var foo = function(n, name = "gua") { console.log(n, name) } //如果传一个参数第一个n那就是参数的值,第二个直接输出 //如果传入两个参数那么就输出两个参数的值 //这就是函数的默认值 foo(11)
7.可变参数 用...语法可以实现可变长度的参数,多余的参数会被放进一个array数组,这个数组可以是任何名字
var value = function(a, ...arr) { //结果是1, 3 console.log(a, arr.length) //输出结果是2 3 4 console.log(arr) } value(1, 2, 3, 4)
8.箭头函数
1.箭头函数是匿名函数定义的简化版,宣称能使得代码更加简洁
2.它的this值是绑定了的
3.箭头函数每天arguments对象
4.如果要多参数必须要用...
(参数一,参数二) => { 语句 } //相当于 function(参数一,参数二) { return 语句 }
//如果只有一个参数,圆括号可以省略
(参数一) => {语句} 等于 参数一 => {语句}
//但是如果没有参数,必须要使用圆括号
() => { 语句 }
例子
var a2 = a1.map(function(n) { return n * n }) //相当于 var a2 = a1.map(n => n*n) n => n*n //相当于 function (n) { return n*n }
9.双重匿名函数
a => b => a + b
10.新增函数includes函数,可以用来查找返回值,查询一个数组是否存在要查询的元素,如果有就返回true没有就返回false