千家信息网

ES6对象有什么用

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了ES6对象有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。ES6全称 ECMAScript 6.0 ,是 Ja
千家信息网最后更新 2026年11月02日ES6对象有什么用

这篇文章主要介绍了ES6对象有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

ES6全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版,ES6 主要是为了解决 ES5 的先天不足,比如 JavaScript 里并没有类的概念,但是目前浏览器的 JavaScript 是 ES5 版本,大多数高版本的浏览器也支持 ES6,不过只实现了 ES6 的部分特性和功能。

对象字面量

属性的简洁表示法

ES6允许对象的属性直接写变量,这时候属性名是变量名,属性值是变量值。

const age = 12;const name = "Amy";const person = {age, name};person   //{age: 12, name: "Amy"}//等同于const person = {age: age, name: name}

方法名也可以简写

const person = { sayHi(){   console.log("Hi"); }}person.sayHi();  //"Hi"//等同于const person = { sayHi:function(){   console.log("Hi"); }}person.sayHi();//"Hi"

如果是Generator 函数,则要在前面加一个星号:

const obj = { * myGenerator() {   yield 'hello world'; }};//等同于const obj = { myGenerator: function* () {   yield 'hello world'; }};

属性名表达式

ES6允许用表达式作为属性名,但是一定要将表达式放在方括号内。

const obj = {["he"+"llo"](){  return "Hi"; }}obj.hello();  //"Hi"

注意点:属性的简洁表示法和属性名表达式不能同时使用,否则会报错。

const hello = "Hello";const obj = {[hello]};obj  //SyntaxError: Unexpected token }const hello = "Hello";const obj = {[hello+"2"]:"world"};obj  //{Hello2: "world"}

对象的拓展运算符

拓展运算符(…)用于取出参数对象所有可遍历属性然后拷贝到当前对象。

基本用法

let person = {name: "Amy", age: 15};let someone = { ...person };someone;  //{name: "Amy", age: 15}

可用于合并两个对象

let age = {age: 15};let name = {name: "Amy"};let person = {...age, ...name};person;  //{age: 15, name: "Amy"}

注意点

自定义的属性和拓展运算符对象里面属性的相同的时候:自定义的属性在拓展运算符后面,则拓展运算符对象内部同名的属性将被覆盖掉。

let person = {name: "Amy", age: 15};let someone = { ...person, name: "Mike", age: 17};someone;  //{name: "Mike", age: 17}

自定义的属性在拓展运算度前面,则变成设置新对象默认属性值。

let person = {name: "Amy", age: 15};let someone = {name: "Mike", age: 17, ...person};someone;  //{name: "Amy", age: 15}

拓展运算符后面是空对象,没有任何效果也不会报错。

let a = {...{}, a: 1, b: 2};a;  //{a: 1, b: 2}

拓展运算符后面是null或者undefined,没有效果也不会报错。

let b = {...null, ...undefined, a: 1, b: 2};b;  //{a: 1, b: 2}

对象的新方法

Object.assign(target, source_1, ···)

用于将源对象的所有可枚举属性复制到目标对象中。

基本用法

let target = {a: 1};let object2 = {b: 2};let object3 = {c: 3};Object.assign(target,object2,object3);  // 第一个参数是目标对象,后面的参数是源对象target;  // {a: 1, b: 2, c: 3

如果目标对象和源对象有同名属性,或者多个源对象有同名属性,则后面的属性会覆盖前面的属性。 如果该函数只有一个参数,当参数为对象时,直接返回该对象;当参数不是对象时,会先将参数转为对象然后返回。

Object.assign(3); // Number {3} typeof Object.assign(3); // "object" 因为 null 和 undefined 不能转化为对象,所以会报错:

Object.assign(null);       // TypeError: Cannot convert undefined or null to objectObject.assign(undefined);  // TypeError: Cannot convert undefined or null to object当参数不止一个时,null 和 undefined 不放第一个,即不为目标对象时,会跳过 null 和 undefined ,不报错Object.assign(1,undefined);  // Number {1}Object.assign({a: 1},null);  // {a: 1}Object.assign(undefined,{a: 1});  // TypeError: Cannot convert undefined or null to object

注意点

assign 的属性拷贝是浅拷贝:

let sourceObj = { a: { b: 1}};let targetObj = {c: 3};Object.assign(targetObj, sourceObj);targetObj.a.b = 2;sourceObj.a.b;  // 2

同名属性替换

targetObj = { a: { b: 1, c:2}};sourceObj = { a: { b: "hh"}};Object.assign(targetObj, sourceObj);targetObj;  // {a: {b: "hh"}}

数组的处理

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

会将数组处理成对象,所以先将 [2,3] 转为 {0:2,1:3} ,然后再进行属性复制,所以源对象的 0 号属性覆盖了目标对象的 0。

Object.is(value1, value2)

用来比较两个值是否严格相等,与(===)基本类似。

基本用法

Object.is("q","q");      // trueObject.is(1,1);          // trueObject.is([1],[1]);      // falseObject.is({q:1},{q:1});  // false

与(===)的区别

//一是+0不等于-0Object.is(+0,-0);  //false+0 === -0  //true//二是NaN等于本身Object.is(NaN,NaN); //trueNaN === NaN  //false

感谢你能够认真阅读完这篇文章,希望小编分享的"ES6对象有什么用"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

对象 属性 参数 运算 运算符 目标 篇文章 表达式 拷贝 版本 简洁 两个 函数 变量 同时 效果 数组 方法 浏览器 表示法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技股 华服互联网科技怎么样 河南真二互联网科技有限公司 深圳互联网络科技有限公司 致聘互联网科技 互联网巨头投资的硬核科技 互联网公司科技股 南平创想时代互联网科技有限公司 银川新华互联网科技学校联系电话 中和天地互联网科技有限公司 山东有哪些互联网科技公司 国大互联网教育科技有限公司薪资 锡山区互联网智能科技产品供应 银行科技岗属于互联网吗 广州富喜互联网络科技 广州有谷有贝互联网科技有限公司 互联网时代高科技布局 山东蛋芒互联网科技有限公司 黑龙江互联网科技公司 互联网高科技绘画 博彦科技互联网金融 科技互联网技术 互联网科技作文 中国互联网科技发展 赫美联合互联网科技 互联网金融监管科技 互联网对科技的发展 本届互联网大会上的黑科技 互联网科技融合创新 如何强化互联网金融科技
0