ES6 :ESMAScript 6,新的javascript语法标准
2015正式推出
作用:为了js更加快捷与方便
在es6中我们通常用let来定义变量和const来定义常量,这两种方式和var(全局变量)有什么区别的?接下来详解:
1.var(全局变量)
在JavaScript中之前定义变量,我们用 var 关键字;它对比let有如下主要缺点:
2.let(局部变量)
var lis = document.querySelectorAll("ul li");
for(let i=0;i<lis.length;i++){
lis[i].onclick = function(){alert(i)}
}
3.const(常量)
{
const PI = 3.1415926;
const PI;
console.log(PI);
}
1.遍历
for(let s of str){
console.log(s)
}
2.检测
indexOf,lastIndexOf :返回值下标|-1
includes(查找字符串) true | false
startsWith(查找字符串) true | false
endsWith(查找字符串) true | false
3.填充
repeat(重复的次数)
padStart(填充总位数,填充字符串)
padEnd(填充总位数,填充字符串)
4.拼接
这里的拼接指的是用字符串模板的方式,即 `` + ${}
用一对反引号(模板字符串
)标识 ,它可以当普通字符串使用(‘普通字符串’),也可以用来定义多行字符串 ,在模板字符串中可以嵌入变量 ,js表达式或函数等
var num = "小娄同学";
var str = `你好${num}`
输出的结果为: "你好小娄同学"
3.字符串ES6的扩展方法
ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构,解构的本质属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。如果解构不成功,变量的值就等于undefined。
1.数组的解构
等号左边的变量放到中括号内部,匹配右侧数组中的元素。
var [a,b,,c=20,...rest] = [1,2,3,4,5,6];
[] 数组解构符号
, 一个数值
...rest 剩余
c=20 默认参数
(按顺序排序)
2.对象的解构
等号左边的变量放到大括号内部,匹配右侧数组中的元素。对象的属性没有次序,变量必须与属性同名,才能取到正确的值
var {name,age,leg=20,...rest} = obj;
{} 对象解构符号
...rest 剩余
(没有顺序)
function(str){return "love"+str;}
箭头函数:str => "love"+str;
1.默认参数
function say(str="我爱你"){}
say();
say("我很你");
2.扩展参数(执行参数)
function metting(a1,a2,a3){}
var arr = ["A","B","D"];
// metting(arr[0],arr[1],arr[2])
// metting.apply(null,arr);
metting(...arr);
不定参(定义)
function add(...list){
return list.reduce((a,b)=>a+b);
//retrun Array.from(arguments).reduce((a,b)=>a+b)
}
extends继承
super父构造函数(要在所有方法最前面执行)
constructor构造函数
this指向实例
static静态的
new Box() 实例化类