资讯专栏INFORMATION COLUMN

ES6:对象的扩展

wenzi / 439人阅读

摘要:中觉得比较特别简洁的写法可以直接写入变量和函数等同于等同于的方法用来比较两个值是否严格相等,与严格比较运算符的行为基本一致。用于对象的合并,将源对象的所有课枚举属性复制到目标对象。的所有方法整理新增的方法扩展运算符的整理

ES6中觉得比较特别简洁的写法,可以直接写入变量和函数

var foo = "bar";
var baz = {foo};
baz // {foo: "bar"}

// 等同于
var baz = {foo: foo};

function f(x, y) {
  return {x, y};
}

// 等同于

function f(x, y) {
  return {x: x, y: y};
}


Object的方法
Object.is():
用来比较两个值是否严格相等,与严格比较运算符(===)的行为基本一致。

Object.assign()
用于对象的合并,将源对象的所有课枚举属性复制到目标对象。
这个方法是浅拷贝,不是深拷贝
这个也可以用来处理数组,但是会把数组视为对象

Object.assign([1, 2, 3], [4, 5])//// [4, 5, 3]

他的基本用法是

给对象添加属性

为对象添加方法

克隆对象

合并多个对象

为属性指定默认值

属性的可枚举性
Object.getOwnPropertyDescriptor: 这个方法可以用来获取该属性的描述对象。
属性的遍历
1.for..in 遍历对象自身的和可继承的可枚举属性(不含Symbol属性)
2.Object.keys(obj),返回一个数组,包括对象自身的(不含继承的)所有课枚举属性(不含Symbol属性)
3.Object.getOwnPropertyNames(obj):返回一个数组,包含对象自身的所有属性(不含Symbol,但是包括不可枚举属性)
4.Object.getOwnPropertySymbols(obj),返回一个数组,包含对象自身的所有Symbol属性
5.Reflect.ownKeys(obj): 返回一个数组,包含对象自身的所有属性,不管是属性名是Symbol或者字符串,也不管是否可枚举

这5中方法都遍历对象的属性,都遵从同样的属性遍历的次序规则

首先遍历所有属性名为数值的属性,按照数字排序

其次遍历所有属性名为字符串的属性,按照生成时间排序

最后遍历属性名为Symbol值的属性,按照生成时间排序

Object.getPrototypeOf()
Object.keys()
Object.values()
Object.entries(): 返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历属性的键值对数组

var obj = { foo: "bar", baz: 42 };
Object.entries(obj)
// [ ["foo", "bar"], ["baz", 42] ]

对象的扩展运算符的应用

1.解构赋值

const [a, ...b] = [1, 2, 3];
a // 1
b // [2, 3]

let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x // 1
y // 2
z // { a: 3, b: 4 }

2.遍历对象的所有可遍历属性

let z = { a: 3, b: 4 };
let n = { ...z };
n // { a: 3, b: 4 }

let ab = { ...a, ...b };
// 等同于
let ab = Object.assign({}, a, b);

Object.getOwnPropertyDescriptors()
ES5中有一个Object.getOwnPropertyDescriptor,返回某个对象属性的描述对象,而getOwnPropertyDescriptors返回指定对象所有自身属性(非继承属性)的描述对象。

//TODO: Object的所有方法整理es5新增的方法
// 扩展运算符的整理

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/86972.html

相关文章

  • ES6入门之对象扩展

    摘要:循环遍历对象自身的和继承的可枚举属性不含属性。返回一个数组,包含对象自身的所有属性的键名。目前,只有对象方法的简写法可以让引擎确认,定义的是对象的方法。showImg(https://user-gold-cdn.xitu.io/2019/5/21/16ada8456223b0e1); 1. 属性的简洁表示法 在ES6中 允许直接写入变量和函数,作为对象的属性和方法,使得代码的书写更为简洁。...

    RiverLi 评论0 收藏0
  • ES6入门之对象扩展

    摘要:属性的简洁表示法在中允许直接写入变量和函数,作为对象的属性和方法,使得代码的书写更为简洁。循环遍历对象自身的和继承的可枚举属性不含属性。返回一个数组,包含对象自身的所有属性的键名。 showImg(https://segmentfault.com/img/remote/1460000019259004?w=1282&h=1920); 1. 属性的简洁表示法 在ES6中 允许直接写入变量...

    AWang 评论0 收藏0
  • ES6标准入门》读书笔记

    摘要:标准入门读书笔记和命令新增命令,用于声明变量,是块级作用域。用于头部补全,用于尾部补全。函数调用的时候会在内存形成一个调用记录,又称为调用帧,保存调用位置和内部变量等信息。等到执行结束再返回给,的调用帧才消失。 《ES6标准入门》读书笔记 @(StuRep) showImg(https://segmentfault.com/img/remote/1460000006766369?w=3...

    HollisChuang 评论0 收藏0
  • es6学习笔记--字符串扩展、数组扩展对象扩展

    摘要:字符串的扩展字符串的遍历器接口字符串可以被循环遍历。即能识别编号大于查询字符串是否包含某个字符返回布尔值,表示是否找到了参数字符串。返回布尔值,表示参数字符串是否在原字符串的头部。 字符串的扩展 1.字符串的遍历器接口 字符串可以被for...of循环遍历。 与es5的比较for循环虽可以遍历字符串,但不能识别大于oxFFFF的编码; 2.位置 --> 字符/码点 根据指定位置返回对应...

    不知名网友 评论0 收藏0
  • ES6rest参数和扩展运算符

    摘要:参数的形式为变量名扩展运算符是三个点。传递给函数的一组参数值,被整合成了数组。扩展运算符的应用普通的函数调用上面代码中,和这两行,都是函数的调用,它们的都使用了扩展运算符。这时,扩展运算符可以将其转为真正的数组,原因就在于对象实现了。 rest参数和扩展运算符都是ES6新增的特性。rest参数的形式为:...变量名;扩展运算符是三个点(...)。 rest参数 rest参数用于获取函数...

    ccj659 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<