ES6部分简略总结

一、数字拓展

1、Number.isNaN——判定一个数字是否是NaN

全局中的isNaN,会进行数据类型的转换 先尽可能转为数字 再判定
Number.isNaN, 不会进行数据类型的转换 参数只要不是数字类型 就为false

2、Number.isFinite——判定一个值是否是有限的

全局中的isFinite,会进行数据类型的转换 先尽可能转为数字 再判定
Number.isFinite, 不会进行数据类型的转换 参数只要不是数字类型 就为false

3、Number.isInteger——判定一个数字是否是整数

先判定是否是数字,如果是,再继续判定是否是整数。 如果不是,直接返回false。

二、对象拓展

1、Object.is——比较两者是否完全相等

与=== 的区别:
1、Object.is(NaN, NaN); => true        NaN === NaN => false
2、Object.is(0, -0); => false         0 === -0 => true

2、Object.assign——让一个对象继承另外一个或者多个对象的属性和方法

Object.assign(obj);         浅复制
obj: 继承者
除了第一个参数之外,后面还可以放任意个参数。每一个参数都是被继承者。

Object.assign(obj, obj1, obj2, obj3);
修改一个对象(被继承者)的时候,影响到了另外一个对象(继承者) 说明是浅复制
jquery的浅复制: . e x t e n d ( o b j , o b j 1 ) ; 深 复 制 : .extend(obj, obj1); 深复制: .extend(obj,obj1);.extend(true, obj, obj1);
underscore只有浅复制:继承     .extend(obj, obj1);浅复制:.clone(obj1); 返回值是被复制的新对象

三、代理对象——proxy构造函数

目的:对目标对象保护;外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写
new Proxy(targetObject, handlerObject);

targetObject: 被代理的对象;
handlerObject: 访问方式 其实就是ES5里的get set特性
代理对象自身没有任何属性和方法

		var obj = {
   
			name: "赵丽颖",
			age: 31,
			married: "是"
		}

		// 当该对象不想被人访问时 可以设置代理
		var proxy = new Proxy(obj, {
   
			// get表示当通过proxy对象访问obj的属性时 调用的方法以及返回的内容
			get: function(target, propName, proxy) {
   
				// 判定 
				if(propName === "married") {
   
					return "保密";
				}
				// 如果不是询问婚姻状况,则如实回答
				return target[propName];
			},
			// set表示当通过proxy对象对obj对象的属性进行修改时 调用的方法以及是否设置
			set: function(target, propName, value, proxy) {
   
				// 禁止修改名字和年龄
				if (propName === "name" || propName === "age") {
   
					return null;
				}
				// 其它属性可以设置
				target[propName] = value;
			}
		})

四、Symbol

数据类型,代表独一无二的符号
属于基本类型(值类型)由Symbol函数生成,参数没有意义,两个Symbol实例永不相同

	let s = Symbol("color");
	let s1 = Symbol("color");
	console.log(s === s1);// false

如果将Symbol当做对象的key 则该key不可枚举

五、对象语法拓展

1、当对象的key与对象的value一致时,可以省略 :value
2、使用[] 来定义对象
3、定义对象的方法的时候,可以取消: function了

	//使用[] 来定义对象
	var user = "student";
	// 定义一个对象
	var obj = {
   
		[user + "name"]: "你好"
	}
	console.log(obj)// { studentname: "你好"}

	// 定义对象的方法的时候,可以取消: function了
	var obj = {
    intro: function() {
   }  }
	//可修改为:
	var obj1 = {
    intro() {
   }  }

六、解构对象、数组

	var Tom = {
   
			username: "张三",
			age: 12,
			gender: "男",
			married: false
		}
	var {
   username, age, gender, married} = Tom;
	console.log(username, age, gender, married) //Tom 12 男 false

	var arr = [1, 2, 3, 4
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值