今天我们来学习一下ES6内容:
第一个知识点:
了解ES6是什么?
ES6是JavaScript语言的下一代标准,已经在2015年6月正式发布了。Mozilla公司将在这个标准的基础上,推出JavaScript 2.0。ECMA Script,JavaScript的语言标准。
优点:提升JS编写大型的复杂应用程序的能力。
不足:对浏览器存在兼容性问题。
第二个知识点:
变量声明关键字:val;let;const
区别 | |||||
---|---|---|---|---|---|
var | 全局作用域和函数作用域 | 变量提升 | 重复声明 | 声明可以不赋值 | |
let | 局部作用域 | 不会变量提升 | 不能重复声明 | 声明可以不赋值 | |
const | 局部作用域 | 不会变量提升 | 不能重复声明 | 声明必须赋值 | 值类型不可修改 |
第三个知识点:
结构分为数组和对象两个内容:
数组的定义:把数组或对象解析为单独变量;
数组的基本格式为var [a,b,c="default",...rest]=arr
数组中的逗号代表一位,而...rest可以代表剩余的所有(注意:这个只能放在最后)
数组是可以有默认值的
对象的基本格式为var{name,age,say="love you",...rest}=obj;
对象中的解析是没有顺序的
第四个知识点:
字符串:字符串模板`${js变量}`可以换行,可以加特殊符号
检测类 | |
includes(sub) | 是否包含 |
startWith(sub) | 以什么开头 |
endsWith(sub) | 以结尾 |
去除空白 | |
trim() | 去掉两端空白 |
trimLeft() | 去掉左边空白 |
trimRight() | 去掉右边的空白 |
for of | 遍历 |
repeat(n) | 字符串重复n次 |
padStart(次数,填充字符串) | 填充 |
第五个知识点:
数组高阶方法:
数组高阶方法 | ||
forEach | 遍历 | arr.forEach(function(item,index,self){}) |
map | 映射 | arr.map(function(item,index,self){ //返回一个,映射数组 }) |
filter | 过滤 | arr.filter(function(item,index,self){ //返回真,当前遍历元素保留 //返回假,当前变量的元素过滤掉 }) |
reduce | 累计 | arr.reduce(function(a,b){ a是上一次返回的结果 }) |
some | 有一个 | 有一个返回结果为true最终结果为true |
every | 每一个 | 每个返回结果为true最终结果才为true |
find | 查找元素 | 查找符合条件的元素 |
findIndex | 查找下标 | 查找符合条件的元素下标 |
sort((a,b)=>a-b) | 从小到大排列 | |
sort((a,b)=>b-a) | 从大到小排列 |
第六个知识点:
箭头函数:
01、箭头函数省略function
02、=>左边参数
03、箭头右边函数体、返回值
04、穿参0个或者2个以上参数加上括号
05、如何函数体有多行需要加上{}如果需要返回值return
06、如果返回的是一个对象则用()包裹对象({})
07、箭头函数this指向上一层作用域的this
第七个知识点:
函数:
默认参数:function fn(a=10,b=20){}
调用:扩展参:fn(...arr)
定义:不定参:function(...arr){}
第八个知识点:
对象:
对象简写分为变量和值简写 函数function简写
对象简写基本为:
var name="mumu"
var obj={
name,
say(){alert(this.name)}
}
对象动态属性基本格式为:{[nick+"msg"]:'你好呀'}
第九个知识点:
类:
01:面向对象基本特点:封装;继承;多态;接口
02: extende:继承
constructor:构造函数
super:超类
static:静态
03:定义类的方法:
class Person{
constructor(name,age){
this.name=name;
this.age=age;
}
say(){
alert("你好“)
}
}
04:实例化类:var pl=new Person()
05:类中的this:Person类中的this指向当前类的实例(pl)
06:继承:
class Teach extends Person{
constructor(name,age,major) {
super(name,age);
this.major=major;
}
}
第十个知识点:
模块:分为模块导入和模块导出
模块导入:01:import{name,fun,Square}from ‘./api.js’
02:import Square from ‘./api.js’
import Sq from './api.js'
03:别名as,*代表所有
import*api from '.api.js'
api.name:api.fun()
04:别名
import Square,{name,fun,as,fn} from './api.js'
模块导出:exeport{name,fun,Square} 导出多次
exprt default Square; 默认只能导出一次
第十一个知识点:
set:
set定义是没有重复元素的集合(数组)
set初始化:var s1=new Set()
var s2=new Set([1,2,5])
添加:s1.add()
删除:s1.delete()
情况:s1.clear()
检测:s1.has()
长度:s1.size()
转数组:Array.from(s1)和[...s1]
数组去重:arr1=[...new Set(arr)]