概念
ES6正式名称: ESMAScript 6,新的javascript语法标准
2015正式推出 目的为了js更加快捷与方便
变量声明区别
var 特点
全局作用域
- List item
函数作用域
没有 if,switch,for,while,do,else作用域
会变量提升
let 局部变量
- 局部作用域,(在一对{}启用)
2. 不能变量提升
3. 在一个作用域里面不能重复声明
const 常量
- let 一样
- 变量名建议大写
- 声明必须赋值
- 值类型不允许修改
解构
数组
var [a,b,c=20,…rest] = [1,2,3,4,5,6];
[] 解构符号
,一位
…rest 剩余
c=10 默认参数(有顺序的)
对象
var {name,age,leg=20,…rest} = obj;
//{} 符号
//没有顺序
//…rest 剩余
字符串ES6扩展方法
- trim移除空白
- repeat重复
- includes查找是否包含,返回的是true或者false
- (以前用的是indexOf,lastindexOf,返回的是下标或者-1
- startWith 以…开头
- endWidth以…结尾
- 字符串模板
- ``定义字符串,用${}定义js
字符串
遍历
for
for of 遍历
例
for(let s of str){ console.log(s) }
检测
- indexOf,lastIndexOf :返回值下标|-1
- includes(查找字符串) true | false
- startsWith(查找字符串) true | false
- endsWith(查找字符串) true | false
填充
- repeat(重复的次数)
- padStart(填充总位数,填充字符串)
- padEnd(填充总位数,填充字符串)
拼接
+
``+${}
例:
var str = 你好帅呀,能做我的${num}号男朋友吗?
数组
Array.from(类数组)
把类似数组转换数组
高阶方法
- forEach(function(item,index,self){})
- item 遍历的元素
- index 元素的下标
- self 数组本身
- map()映射一个数组
- filter(item=>true保留||false过滤掉)过滤
- reduce() 累计
- some()有一true,整体返回true
- every()有一个返回false,整体返回false
- find()查找符合条件的元素
- findIndex()查找符合条件的元素
- sort((a,b)=>a-b) 排序
includes 检测是否包含
fill( ) 填充数组
函数
箭头函数(箭头函数就是函数的简写形式)
- 箭头左边:参数
- 箭头右边:返回值
- 例:function(str){return “love”+str;}
- 箭头函数:str => “love”+str;
参数(0个或多个参数要用括号包括)
function(){ alert("我爱ES6")}
()=>alert("我爱ES6")
返回值 如果返回是一个对象,那么用括号包裹
function(){return {name:"mumu",age:18}; }
()=>({name:"mumu",age:18}
执行语句:如果执行有多行,返回语句要用return 执行语句要用{} 包裹
function(str){if(str.includes("俄罗斯")){
return "沙皇大帝"
}else{
return "金帐汉国"
}
}
函数参数
默认参数
function say(str="我爱你"){}
say();
say("我很你");
扩展参数(执行)
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)
}
类
- class 类
- extends继承
- super父构造函数(要在所有方法最前面执行)
- constructor构造函数
- this指向实例
- static静态的
- new Box() 实例化类