ES6知识小总结(2)

@TOC

ES6知识小总结(2)

一、set

set是一个不重复的数组 可以去重
初始化 new Set()
添加 add()
删除delete()
获取长度 size()
遍历 for of
clear() 清空
转换维数组 Array.from()[…]
has() 检测是否有
特点:不重复

var arr=[1,1,1,5,5,2,3,4,5,2,1,2];
		var s1=new Set(arr);
		arr=Array.from(s1)
		console.log(arr)
var s=new Set([1,1,2,2,3,3,4,4,5,5]);
			console.log(s);
			console.log("size:",s.size);
			console.log("是否有",s.has(6));
			//-------------------------
			s.add(12)
			console.log(s)
			s.delete(1)
			console.log(s)
			for(let i of s){
				console.log(i)
			}

二、map

map
类似于对象
键名可以是任意对象 ,对象:键名只能是 字符串 或者 symbol符号
有序
key可以是任意值
new Map([k,v],[])
获取长度 size()
set(k,v) 设置
get (k) 获取
has() 检测是否有
clear()
for of 遍历

var obj={"b":100,"a":"zxm","2":"dfskfm"};
			console.log(obj)
			var map=new Map(["b",100]["a","zxm"][2,"dfskfm"]);
			console.log(map)

三、symbol

创建 var s1=Symbol(“blue”)
符号是唯一
常用于 对象的键
obj={[s1]:“mumu”}
obj[s1]

四、迭代器

javascript 可选迭代器
string 字符串
Array 数组
Set 集合
Map 键值对

keys 键名的集合
value值的集合
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)
		}
		
		//entries 键与值的集合
		for(let [key,val] of arr.entries()){
			console.log(key,val)
		}

五、call

执行函数,对象冒充,参数单个
add.apply({name:“mumu”},3,7)
{name:“mumu”} 10

六、apply

apply
执行函数,对象冒充,参数数组
function add(x,y){
console.log(this,x+y)
}
add.apply({name:“mumu”},[3,7])
{name:“mumu”} 10

七、bind

bind
创建函数,对象冒充,参数默认值
var nadd=add.bind({name:“zqi”},5)
nadd(10)
{name:“zqi”},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

	class Animal{
			constructor(name) {
			    this.name=name;
			}
			runing(){
				console.log("会走会跑");
			}
		}
		class Dog extends Animal{
			constructor(name) {
			    super(name);//调用父类的构造函数
				//this类的实例
				
		}
			//构造函数(new 类被调用)
			bark(){
				console.log("汪汪汪")
			}
		}
		var d1=new Dog("来福");
		var d2=new Dog("旺财");
		
		
		
		//猫类
	class Cat extends Animal{
			constructor(name,age=2) {
			    super(name);
				this.age=age
				//每次构造函数被调用 num加1
				Cat.num++;
				Cat.sayLog()
			}
			static num = 0
			static sayLog(){
				console.log(`当前总共有${Cat.num}只猫`);
			}
			//静态属性 值为 0
			bark(){
				console.log("喵喵喵")
			}
			set Age(val){
				if(val>0){
					this.age=val;
				}else{
					console.log("设置年龄不正常")
				}
			}
			get Age(){
				console.log("被GET到了")
				return this.age;
			}
		}
		var c1=new Cat("小白")
		var c2=new Cat("小埋",4)
		//set get 当我们去设置或者获取的对数据进行额外的操作,隐藏原本的数据直接操作

九、模块

在 ES6 前, 实现模块化使用的是 RequireJS 或者 seaJS
ES6 引入了模块化,其设计思想是在编译时就能确定模块的依赖关系,以及输入和输出的变量。
ES6 的模块化分为导出(export) @与导入(import)两个模块。
模块导入导出各种类型的变量,如字符串,数值,函数,类。
导出的函数声明与类声明必须要有名称。
不仅能导出声明还能导出引用。
export 命令可以出现在模块的任何位置,但必需处于模块顶层。
import 命令会提升到整个模块的头部,首先执行。

猜你喜欢

转载自blog.csdn.net/weixin_48988929/article/details/107963470
今日推荐