知识总结|ES6 set、map、symbol...方法
set
- new Set([])
- size 长度
- add() 添加
- delete() 删除
- clear() 清空
- for of 遍历
- has() 检测是否含有
- 特点:不重复
var s = new Set([1, 3, 1, 3, 5, 7, 9]);
console.log(s);
console.log("size:", s.size);
//获取长度
console.log("是否有5", s.has(5));
//是否含有是返回true无返回false
//----------------------------------
s.add(12);
//添加
console.log(s);
s.delete(1);
//删除
console.log(s);
for (let i of s) { //遍历
console.log(i);
}
map 特点:
- 有序
- key可以是任意值
- new Map([[k,v],[]])
- size 长度
- set(k,v) 设置
- get(k) 获取
- has() 检测是否有
- clear()
- for of 遍历
var obj={"b":100,"a":"zeng","2":"best","1":"good"}
// console.log(obj);
var map=new Map([["b",100],["a","zeng"],["2","best"],["1","good"]])
// console.log(map);
// console.log(map.size);
//长度
// var map1=map.get('1');
//获取
// console.log(map1);
// var map1=map.set("3","amazing");
//设置
// console.log(map1);
// var map1=map.delete("2");
//删除
// console.log(map1);
for(let [k,v] in map){//遍历
console.log(k,v);
}
// var arr=Object.keys(obj).length;
// console.log(arr);
symbol
- 创建 var s1=Symbol(“blue”)
- 符号是唯一的
- 常用于对象的键
obj={[s1]:"mumu"} obj[s1]
var obj={[s1]:"mumu"}
Symbol.for("blue")==Symbol.for("blue")//symbol.for返回True
Symbol("blue")==Symbol("blue")//返回False
- 迭代器
- JavaScript 可迭代对象
String 字符串
Array 数组
Set 集合
Map 键值对
values() 值集合
keys() 键的集合
entries() 键值的集合
var arr=["我爱","我的","祖国"];
//默认遍历是value
for(let item of arr){
console.log(item);
}
//keys 键名的集合
for(let key of arr.keys()){
console.log(key);
}// value值的集合
for(let val of arr.values()){
console.log(val);
}//tries键与值的集合
for(let [key,val] of arr.entries()){
console.log(key,val);
}
apply
执行函数,对象冒充,参数数组
function add(x,y){
console.log(this,x+y)
}
add.apply({name:"mumu"},[3,7]){name:"mumu"} 10
call
执行函数,对象冒充,参数单个
add.call({name:"mumu"},[3,7])
{name:"mumu"} 10
bind
执行函数,对象冒充,参数默认值
var nadd=add.bind({name:"zql"},5)
nadd(10)
//输出
{name:"zql"},15
类
- 定义
class Cat{
constructor(){}
} - 初始化类
new Cat() - 继承
class Cat extends Animal{} - 方法
brak(){} - 属性
this.name=18 - 访问控制
set Age(val){}
get Age(){} - 调用父类构造函数
super() - 静态方法
static sayLog(){}
Cat.sayLog() - 静态属性
static num=0
Cat.num
- 每一个模块只加载一次, 每一个JS只执行一次, 如果下次再去加载同目录下同文件,直接从内存中读取。 一个模块就是一个单例,或者说就是一个对象;
- 每一个模块内声明的变量都是局部变量, 不会污染全局作用域;
- 模块内部的变量或者函数可以通过export导出;
- 一个模块可以导入别的模块
- 下面列出几种import和export的基本语法:
- 在lib.js文件中, 使用 export{接口} 导出接口, 大括号中的接口名字为上面定义的变量, import和export是对应的;
- 在export接口的时候, 我们可以使用 XX as YY, 把导出的接口名字改了, 比如: closureFn as sayingFn, 把这些接口名字改成不看文档就知道干什么的:
- 这种方式是直接在export的地方定义导出的函数,或者变量:
- 这种导出的方式不需要知道变量的名字, 相当于是匿名的, 直接把开发的接口给export;如果一个js模块文件就只有一个功能, 那么就可以使用export default导出;
- export也能默认导出函数, 在import的时候, 名字随便写, 因为每一个模块的默认接口就一个:
- 使用通配符* ,重新导出其他模块的接口 (其实就是转载文章, 然后不注明出处啦);
- 其他:ES6的import和export提供相当多导入以及导出的语法;在import的时候可以使用通配符*导入外部的模块:
- 每一个导入的js模块都是活的, 每一次访问该模块的变量或者函数都是最新的, 这个是原生ES6模块 与AMD和CMD的区别之一
- import 命令的特点
只读属性:不允许在加载模块的脚本里面,改写接口的引用指向,即可以改写 import 变量类型为对象的属性值,不能改写 import 变量类型为基本类型的值。
单例模式:多次重复执行同一句 import 语句,那么只会执行一次,而不会执行多次。import 同一模块,声明不同接口引用,会声明对应变量,但只执行一次 import 。
静态执行特性:import 是静态执行,所以不能使用表达式和变量。
- 【知识总结|ES6 set、map、symbol...方法】export default 命令
在一个文件或模块中,export、import 可以有多个,export default 仅有一个。
export default 中的 default 是对应的导出接口变量。
通过 export 方式导出,在导入时要加{ },export default 则不需要。
export default 向外暴露的成员,可以使用任意变量来接收。
推荐阅读
- 知识
- 7.9号工作总结~司硕
- (二)ES6第一节变量(let|(二)ES6第一节变量(let,const)
- 小学英语必考的10个知识点归纳,复习必备!
- 六步搭建ES6语法环境
- 最有效的时间管理工具(赢效率手册和总结笔记)
- 生发知识,带你深入了解
- 知识付费的怪力乱象
- 数据库总结语句
- 周总结|周总结 感悟