【JavaScript对象方法大全】
一、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对象方法大全】相关推荐
- js中string字符串转换为JSON对象 - 方法大全(4种)
js中string字符串转换为JSON对象 - 方法大全(4种) jQuery插件支持的转换方式: 示例: //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对 ...
- 前端必须学会的5个原生JavaScript对象方法
前端必须学会的5个原生JavaScript对象方法 JavaScript 随着node.js和基于JavaScript的各种框架的诞生,JavaScript在当今的互联网越来越受到人们的重视,今天我们 ...
- javascript 对象方法、类方法、原型方法
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...
- JavaScript数组方法大全解
0 前言 本文只讲解标准化方法,而不会讲解实验性方法,如at().groupBy().groupByMap()和toSource(). 数组中的部分方法需要提供区间范围begin/start和end, ...
- JavaScript数组方法大全(推荐)
数组在笔试中经常会出现的面试题,javascript中的数组与其他语言中的数组有些不同,为了方便之后数组的方法学习,下面小编给大家整理了关于数组的操作方法,一起看看吧. 数组创建 JavaScript ...
- JavaScript数组方法大全(分为会不会改变原数组)
若看不懂注释的输出方式可以将代码粘贴到浏览器中执行观看 1. 数组通用方法 Array.from: 将一个类数组转化成数组 类数组:Set, Map,对象等可遍历对象皆为类数组 Array.from( ...
- es6 javascript对象方法Object.assign()
1 基本用法 Object.assign方法用于对象的合并,将源对象( source )的所有可枚举属性,复制到目标对象( target ). var target = { a: 1 }; var ...
- js 遍历对象方法大全
目录 前言 键值对遍历(推荐) 键遍历 值遍历 尾言 前言 记录一下js遍历对象的方法,做个分类比较好记. 键值对遍历(推荐) 同时得到键(key)和值(value) for (let [key, v ...
- 【javascript高级教程】JavaScript 对象
JavaScript 中的所有事物都是对象:字符串.数值.数组.函数...及自定义对象 JavaScript 提供多个内建对象,比如 String.Date.Array 等等. 对象只是带有属性和方法 ...
最新文章
- windows和liunx下换行符问题
- Laravel 除了首页能正常访问,其它页面均404
- window环境配置虚拟主机
- [转]ListView滚动到底部自动加载数据
- 如何正确在Facebook投放产品广告?
- git --amend 使用和撤销
- 2022 年十大绩效考核技巧
- 2011年度全球移民国家移民条件浅析
- 回顾微生物学的发展——我们在哪里,我们要去哪里?
- 【Python】小甲鱼Python学习总结——代码版
- 投影仪对和电视哪个对眼睛好?有区别吗?
- Apache OpenNLP介绍(一)
- spring restTemplate的坑----会对String类型的url中的特殊字符进行转义
- 【区域赛总结】2015ACM-ICPC北京区域赛
- 查询服务器主机CPU是几核?附应用场景展示(已解决)
- HDU2066-一个人的旅行
- 小绮的踩坑日记|小土堆pytorch视频——tensorboard
- Biological Psychiatry:vmPFC在情绪、决策、社会认知和精神疾病中扮演多重角色
- 计算机功能转动怎么设定,“怎么调节电脑风扇转速”的解决方案
- CSDN写博客时的代码片格式设置