apply、call和bind
-
apply:执行函数;对象冒充;参数整组
-
call:执行函数;对象冒充;参数单个
-
bind:创建函数;对象冒充;参数默认值
Set:重复
- 添加
var set=new Set([1,3,2,4,5,6,4,7,7,8]);
set.add(9);
console.log(set)
- 删除
var set=new Set([1,3,2,4,5,6,4,7,7,8]);
set.delete(3)
console.log(set)
- 获取长度
var set=new Set([1,3,2,4,5,6,4,7,7,8]);
console.log(set.size)
- 遍历
var set=new Set([1,3,2,4,5,6,4,7,7,8]);
for (let i of set) {
console.log(i)
}
- 转换为数组
var arr=([1,2,3,4,4,2,5,8,5,7]);
var a1=new Set(arr);
arr=Array.from(a1)
console.log(arr)
- 判断是否含有
var set=new Set([1,3,2,4,5,6,4,7,7,8]);
console.log(set.has(1))
- 清空clear()
Map:可以是任意对象;是有序的。
- 长度
var map=new Map([['1','乔开心'],['a','zzz'],['2','进仔'],['b',250]]);
console.log(map.size)
- 添加
var map=new Map([['1','乔开心'],['a','zzz'],['2','进仔'],['b',250]]);
map.set('4',10)
console.log(map)
- 获取
var map=new Map([['1','乔开心'],['a','zzz'],['2','进仔'],['b',250]]);
console.log(map.get('a'))
- 删除
var map=new Map([['1','乔开心'],['a','zzz'],['2','进仔'],['b',250]]);
console.log(map.delete('1'))
- 查询
var map=new Map([['1','乔开心'],['a','zzz'],['2','进仔'],['b',250]]);
console.log(map.has('2'))
- 遍历
var map=new Map([['1','乔开心'],['a','zzz'],['2','进仔'],['b',250]]);
for (let i of map){
console.log(i)
}
- 清空 clear()
string、Array、Set、Map可以通过通过for of遍历
类:
class A{
constructor (){}
}
- 继承 expends
class Cat extends Animal{}
- 方法
run(){}
- 访问控制 set get
- 静态方法 static
模块化:特点
- 每一个模块只加载一次, 每一个JS只执行一次, 如果下次再去加载同目录下同文件,直接从内存中读取。 一个模块就是一个单例,或者说就是一个对象;
- 每一个模块内声明的变量都是局部变量, 不会污染全局作用域;
- 模块内部的变量或者函数可以通过export导出;
- 一个模块可以导入别的模块
导出方式
- export{接口} 导出接口, 大括号中的接口名字为上面定义的变量, import和export是对应的;
- 在export接口的时候, 我们可以使用 XX as YY, 把导出的接口名字改了, 把这些接口名字改成不看文档就知道干什么的
- 直接在export的地方定义导出的函数,或者变量
- 不需要知道变量的名字, 相当于是匿名的, 直接把开发的接口给export
- export也能默认导出函数, 在import的时候, 名字随便写, 因为每一个模块的默认接口就一个
- 使用通配符* ,重新导出其他模块的接口