一、Object.assign(目标对象,源对象) 浅复制、合并、拷贝、

继承属性和不可枚举的属性是不能被拷贝的

将所有源对象的所有属性复制到目标对象上,并且返回目标对象

不能复制不可枚举属性

var o=Object.assign({},obj,obj1);

var o ={...obj,...obj1}//复制,重新变成1个新对象

二、Object.keys(o) 获取o对象的所有key组成的数组

三、Object.values(o) 获取o对象的所有value组成的数组

四、Object.entries(o)

返回一个给定对象自身可枚举属性的键值对数组

五、Object.is() 判断两个值是否相同。

如果下列任何一项成立,则两个值相同:

  • 两个值都是 undefined
  • 两个值都是 null
  • 两个值都是 true 或者都是 false
  • 两个值是由相同个数的字符按照相同的顺序组成的字符串
  • 两个值指向同一个对象
  • 两个值都是数字并且
    • 都是正零 +0
    • 都是负零 -0
    • 都是 NaN
    • 都是除零和 NaN 外的其它同一个数字
Object.is({}, {})// false
+0 === -0 //true
NaN === NaN // false
Object.is(+0, -0) // false
Object.is(NaN, NaN) // true

六、Object.fromEntries 把array转换为object

Object.entries的反向操作,把array转换为object 。
该方法可以把键值对列表转化为一个对象,入参可以是一个Map、Set、Array类型,或者其他实现了可迭代协议的可迭代对象。

七、delete 删除对象的属性

八、 Object.defineProperty(对象,属性名,属性描述对象); 定义属性,也可以定义Symbol

属性描述对象:writable/value,set/get这两对不能同时出现
默认为false{configurable:true,//不可删除和不可修改属性描述对象enumerable:true,  //是否可以枚举writable:true,    //是否只读value:1,          //属性值set:function(){   //设置},get:function(){    //读取}}
var obj={a:1,b:2};
obj.c=3;
Object.defineProperty(obj,"d",{value:4
})
console.log(obj);例:Object.defineProperty(obj,"c",{configurable:true,enumerable:true,writable:false,value(a,b){console.log(a+b)}})obj.c(3,5);//8默认例:// var obj={a:1,b:2};// obj.c=3;// Object.defineProperty(obj,"d",{//     value:4// })// obj.d=5// console.log(obj);这时候的d属性不能删除不能修改只读而且不可枚举

九、 Object.defineProperties()定义属性,可定义多个,默认为false,可定义Symbol

Object.defineProperties(obj,{c:{writable:true,value:30},d:{configurable:true,value:4},e:{enumerable:true,value:5}})var s=Symbol();obj[s]=10;console.log(obj);

十、Object.getOwnPropertyNames(obj) 获取对象的所有属性名,返回属性名组成的数组,Symbol不能获取

十一、Object.getOwnPropertySymbols(obj) 获取对象的所有Symbol属性名,返回属性名组成的数组

       合并十和十一:concat和解构// 不能获取到原型属性// var arr=Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));// console.log(arr);// var arr=[...Object.getOwnPropertyNames(obj),...Object.getOwnPropertySymbols(obj)];// console.log(arr)

十二、Object.getOwnPropertyDescriptor(obj,"d"); 获取属性的描述对象

十三、Reflect.ownKeys(obj); 获取到对象所有属性和方法名,包括Symbol属性

十四、Reflect.defineProperty 定义属性,默认为false,可定义Symbol,与Object.defineProperty相同

十五、 Reflect.deleteProperty(obj,"c"); 删除

十六、 Object.freeze(obj);冻结 不能修改属性,不能删除属性,不能添加属性

十七、 Object.isFrozen(obj) 判断对象是否被冻结

十八、 Object.seal(obj); 可以修改,不能删除,不能添加属性

十九、 Object.isSealed(obj) 判断是否使用seal

二十、 Object.preventExtensions(obj); 可以修改,可以删除,但是不能添加新属性,不能扩展

二十一、Object.isExtensible(obj) 判断是否可以扩展

二十二、Object.getOwnPropertyDescriptors(obj) 获取对象中所有属性的描述对象列表对象

二十三、Object.getPrototypeOf(obj) 获取obj对象的原型链

二十四、Object.setPrototypeOf(o1,o) 设置对象的原型链

将o1的原型链设置为o

二十五、 判断对象的对象属性是否包含这个属性名

console.log(o1.hasOwnProperty("b"))

console.log(Object.hasOwn(o1,"b"))

【JavaScript对象方法大全】相关推荐

  1. js中string字符串转换为JSON对象 - 方法大全(4种)

    js中string字符串转换为JSON对象 - 方法大全(4种) jQuery插件支持的转换方式: 示例: //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对 ...

  2. 前端必须学会的5个原生JavaScript对象方法

    前端必须学会的5个原生JavaScript对象方法 JavaScript 随着node.js和基于JavaScript的各种框架的诞生,JavaScript在当今的互联网越来越受到人们的重视,今天我们 ...

  3. javascript 对象方法、类方法、原型方法

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  4. JavaScript数组方法大全解

    0 前言 本文只讲解标准化方法,而不会讲解实验性方法,如at().groupBy().groupByMap()和toSource(). 数组中的部分方法需要提供区间范围begin/start和end, ...

  5. JavaScript数组方法大全(推荐)

    数组在笔试中经常会出现的面试题,javascript中的数组与其他语言中的数组有些不同,为了方便之后数组的方法学习,下面小编给大家整理了关于数组的操作方法,一起看看吧. 数组创建 JavaScript ...

  6. JavaScript数组方法大全(分为会不会改变原数组)

    若看不懂注释的输出方式可以将代码粘贴到浏览器中执行观看 1. 数组通用方法 Array.from: 将一个类数组转化成数组 类数组:Set, Map,对象等可遍历对象皆为类数组 Array.from( ...

  7. es6 javascript对象方法Object.assign()

    1  基本用法 Object.assign方法用于对象的合并,将源对象( source )的所有可枚举属性,复制到目标对象( target ). var target = { a: 1 }; var ...

  8. js 遍历对象方法大全

    目录 前言 键值对遍历(推荐) 键遍历 值遍历 尾言 前言 记录一下js遍历对象的方法,做个分类比较好记. 键值对遍历(推荐) 同时得到键(key)和值(value) for (let [key, v ...

  9. 【javascript高级教程】JavaScript 对象

    JavaScript 中的所有事物都是对象:字符串.数值.数组.函数...及自定义对象 JavaScript 提供多个内建对象,比如 String.Date.Array 等等. 对象只是带有属性和方法 ...

最新文章

  1. windows和liunx下换行符问题
  2. Laravel 除了首页能正常访问,其它页面均404
  3. window环境配置虚拟主机
  4. [转]ListView滚动到底部自动加载数据
  5. 如何正确在Facebook投放产品广告?
  6. git --amend 使用和撤销
  7. 2022 年十大绩效考核技巧
  8. 2011年度全球移民国家移民条件浅析
  9. 回顾微生物学的发展——我们在哪里,我们要去哪里?
  10. 【Python】小甲鱼Python学习总结——代码版
  11. 投影仪对和电视哪个对眼睛好?有区别吗?
  12. Apache OpenNLP介绍(一)
  13. spring restTemplate的坑----会对String类型的url中的特殊字符进行转义
  14. 【区域赛总结】2015ACM-ICPC北京区域赛
  15. 查询服务器主机CPU是几核?附应用场景展示(已解决)
  16. HDU2066-一个人的旅行
  17. 小绮的踩坑日记|小土堆pytorch视频——tensorboard
  18. Biological Psychiatry:vmPFC在情绪、决策、社会认知和精神疾病中扮演多重角色
  19. 计算机功能转动怎么设定,“怎么调节电脑风扇转速”的解决方案
  20. CSDN写博客时的代码片格式设置

热门文章

  1. [设计点评]湖南卫视国际频道的优酷视频空间
  2. 网卡绑定之bonding
  3. 「津津乐道播客」#348 原汤话原食:厂长来了:AI是怎样帮你挡掉电诈的?
  4. tiktok网页版signature
  5. 哈夫曼树构造过程及最优证明
  6. 益达木糖醇广告歌曲英文版--Sitting by the side of the road
  7. 我的ModBus主机-协议篇
  8. Qt界面设计常用的一些代码(即Qt style Sheets)
  9. 精品网站汇集!想看想学的一应俱全
  10. 酷狗mv php解析api接口,酷狗音乐API接口大全(40 个)