关于前端对象的一些絮叨
Object
Object.assign(目标对象,源对象1,源对象2,…)
- 作用:该方法主要用于对象的合并,将源对象source的所有可枚举属性合并到目标对象target上,
- 特点:
(1) 此方法只拷贝源对象的自身属性,不拷贝继承的属性
(2)浅拷贝,可处理数组,数组是替换相等索引的值
Object.create(原型,[,属性])
- 作用:使用指定的原型对象及其属性去创建一个新的对象
Object.is(值,值)
- 作用:判断两值是否相等
- 特点:
(1) 简化了 == 和 ===时,+0、-0 相等的问题与NaN、NaN不相等的问题
(2)注意,对象类型是比较引用,其他的是比较值。
Object.defineProperties(对象,属性们)
- 作用:直接在一个对象上定义新的属性或修改现有属性,并返回该对象
- 特点:可修改,也可新增属性。第二个参数可以是多个属性。但是这个是个描述器,有格式要求–》value和writable
{
‘property1’: {
value: true,
writable: true
},
‘property2’: {
value: ‘Hello’,
writable: false
}
Object.defineProperty(对象,属性名,描述器)
- 作用:直接在一个对象上定义一个新属性或者修改一个对象的现有属性, 并返回这个对象。
- 特点:这是仅仅为一个。且不能同时设置(writable,value) 和 get,set方法,否则浏览器会报
{
value: function(x, y) {
},
configurable: true,
enumerable: false,
writable: true
}
Object.keys(对象)
- 作用: 返回对象的自身可枚举属性组成的数组,排列顺序和使用 for…in 循环遍历该对象时返回的顺序一致。
- 特点:
(1)两者的主要区别是 一个 for-in 循环还会枚举其原型链上的属性
Object.values(对象)
- 作用: 返回所有可枚举属性值的数组,值的顺序与使用for…in循环的顺序相同
- 特点:
(1)会过滤属性名为 Symbol 值的属性。
(2)两者的主要区别是 一个 for-in 循环还会枚举其原型链上的属性
Object.entries(对象)
- 作用:返回身可枚举属性的键值对数组,使用 for…in 循环遍历该对象时返回的顺序相同
对象.hasOwnProperty(属性名)
- 作用:判断对象自身属性中是否具有指定的属性。
Object.getOwnPropertyDescriptor(对象,属性名)
- 作用:返回指定对象上一个自有属性对应的属性描述符。
- 特点:
(1)自有属性指的是直接赋予该对象的属性,不需要从原型链上进行查找的属性
Object.getOwnPropertyDescriptors(对象)
- 作用:获取一个对象的所有自身属性的描述符
Object.getOwnPropertyNames(对象)
- 作用:返回一个由指定对象的所有自身属性的属性名组成的数组。
- 特点:(1)包括不可枚举属性但不包括Symbol值作为名称的属性
Object.getOwnPropertySymbols(对象)
- 作用:返回一个给定对象自身的所有 Symbol 属性的数组
Object.getPrototypeOf()
- 作用:返回指定对象的原型(内部[[Prototype]]属性的值,即__proto__,而非对象的prototype)。
Object.setPrototypeOf(对象,原型)
- 作用:设置对象的原型对象
isPrototypeOf()
- 作用:判断一个对象是否存在于另一个对象的原型链上
Object.freeze()
- 作用:冻结一个对象,冻结指的是不能向这个对象添加新的属性,不能修改其已有属性的值,不能删除已有属性,以及不能修改该对象已有属性的可枚举性、可配置性、可写性。也就是说,这个对象永远是不可变的。该方法返回被冻结的对象。
Object.isFrozen()
- 作用:判断一个对象是否被冻结
Object.preventExtensions()
- 作用:对象不能再添加新的属性。可修改,删除现有属性,不能添加新属性。
Object.isExtensible()
- 作用:判断对象是否是可扩展的,Object.preventExtensions,Object.seal 或 Object.freeze 方法都可以标记一个对象为不可扩展(non-extensible)
Object.seal()
- 作用:可以让一个对象密封,并返回被密封后的对象。密封一个对象会让这个对象变的不能添加新属性,且所有已有属性会变的不可配置。属性不可配置的效果就是属性变的不可删除,以及一个数据属性不能被重新定义成为访问器属性,或者反之。但属性的值仍然可以修改。尝试删除一个密封对象的属性或者将某个密封对象的属性从数据属性转换成访问器属性,结果会静默失败或抛出TypeError 异常. 不会影响从原型链上继承的属性。但 proto ( ) 属性的值也会不能修改。
Object.isSealed()
- 作用:判断一个对象是否被密封
关于前端对象的一些絮叨相关推荐
- 一文搞懂前端对象的深拷贝与浅拷贝
在前端开发过程中常常会听到对象的深拷贝与浅拷贝,对于初学者来说,可能是傻傻的分不清楚,本人将详细介绍javascript中对象的深拷贝与浅拷贝. 一.javascript中的数据类型 基础数据类型 字 ...
- java接收前端对象数组
在做考试系统的笔记本功能,需要前端传过来对象数组 将对象数组转为json格式在传到后端,后端用String接收,然后转为json对象,在获取其中的对象数组,再遍历数组即可 var markQuesti ...
- jso前端对象转字符串到后台字符串的双引号变成quot;该如何解决?
json串中的双引号变成"该如何解决? 前台封装好了键值对形式的字符串,使用了EasyUI的treeGrid控件,传到后台后,双引号转义为" 解决办法 使用的时候用StringEs ...
- 简单介绍实体类或对象序列化时,忽略为空属性的操作
这篇文章主要介绍了实体类或对象序列化时,忽略为空属性的操作,具有很好的参考价值,希望对大家有所帮助.如有错误或未考虑完全的地方,望不吝赐教 第一种,在配置文件配置 在application.xml直接 ...
- web项目实现mysql增删改查并从前端页面操作
1.看下各个包下面的文件,我上一篇文章已经说过了,这里对上一章有一部分重复的 2.User.java是数据库元素写的一个类,代码如下 package com.hqyj.wj.model; //用户信息 ...
- javascript-字典形态对象与数组形态对象
字典类型的对象 字典形态的前端对象取值方式,二种 对象[str属性名] 对象.属性名 关于字典的键不加引号的情况的测试 但是在python中 数组类型的对象 取值通过 数组[索引] 而不可以是 数组. ...
- 什么样的前端框架才是一个好框架
够得着 我们开发一个软件,最终目的都是为了提供一个产品或者服务给我们的客户.站在公司或者组织的角度,当然是想这个产品用户越多越好,这样产生的效益才越大. 怎么让用户量最大化? 除了市场营销和推广外,我 ...
- Ajax异步(7)前端
1 Ajax概述 AJAX 即"Asynchronous Javascript And XML"(异步 JavaScript和 XML),是指一种创建交互式.快速动态网页应用的 ...
- 前端传值,java后端接收
1. 前端多个对象数组的JSON.stringify转化为字符串传参,后端集合对象接收: var arr = [ 0, 1, 2]; var myJSON = JSON.stringify(arr); ...
最新文章
- vue-router使用入门
- 人与计算机猜数伪代码,《计算机和算法》PPT课件.ppt
- 冲刺阶段——Day5
- 正则表达式(grep命令,egrep命令,sed命令,awk命令,sort工具,uniq工具)
- 神经网络python识别词语_请教关于python的手写数字识别神经网络问题~~~~
- 什么是VXLAN?为什么需要VXLAN?
- 优达学城深度学习之五——卷积神经网络
- 解决krpano全景视频在QQ浏览器、安卓不能正常播放的问题
- open ball、closed ball 与 open set、closed set(interior point,limit point)、dense set
- 人工智能 深度学习(Deep learning)开源框架
- SQL2005企业版详细部署(一)
- 程序员面试指南python_程序员代码面试指南:IT名企算法与数据结构题目最优解 PDF...
- java集成kettle教程(附示例代码)
- Keil C51中变量和函数的绝对地址的定位和访问
- CSS 实现平行四边形
- 线段树,方差,数学(Variance,玲珑杯 Round#5 H lonlife 1063)
- web开发经典,jquery修改style属性display
- matlab dcgain,MATLAB实现控制系统的时域分析
- 微信上网卡WeSim悄然发布
- 微信小程序(四)会员专区