首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

JS篇(021)-for in、Object.keys和Object.getOwnPropertyNames对属性遍历有什么区别

答案: * for in 会遍历自身及原型链上可枚举属性 * Object. keys 会将对象自身可枚举属性 key 输出 * Object. getOwnPropertyNames会将自身所有的属性...key 输出 解析: ECMAScript 将对象属性分为两种:数据属性和访问器属性。...enumerable: true, configurable: true } }); // parent继承自Object.prototype,有一个可枚举属性a(enumerable.... keys console.log(Object.keys(child)); // ["b"] // Object.keys 会将对象自身可枚举属性key输出 3、Object. getOwnPropertyNames...console.log(Object.getOwnPropertyNames(child)); // ["b","c"] // 会将自身所有的属性key输出 [参与互动](https://github.com

1.2K20

ECMAScript5 Object属性方法

true} Object.getOwnPropertyNames 获取所有的属性名,不包括prototype中属性,返回一个数组 console.log(Object.getOwnPropertyNames...,返回一个数组 console.log(Object.keys(o)); //["age"] 上面例子可以看出不可枚举sex都没有获取Object.preventExtensions(O) /...Object.isExtensible 方法用于锁住对象属性,使其不能够拓展,也就是不能增加新属性,但是属性值仍然可以更改,也可以把属性删除,Object.isExtensible用于判断对象是否可以被拓展...方法用于把对象密封,也就是让对象既不可以拓展也不可以删除属性(把每个属性configurable设为false),单数属性值仍然可以修改,Object.isSealed由于判断对象是否被密封 Object.seal.../ Object.isFrozen 终极神器,完全冻结对象,在seal基础上,属性值也不可以修改(每个属性wirtable也被设为false) Object.freeze(o); o.age = 25

70940

这次彻底理解了Object这个属性

1.实例化Object对象 实例化Object对象方式有两种:使用Object构造器和使用对象字面量。...如果我们只是想获取一个对象中所有属性名,可以使用Object.keys()方法。该方法会以数组形式返回所有的属性名。...如果我们向改变属性特性,可以使用Object.defineProperty()方法。该方法接受3个参数:拥有被修改属性对象、被修改属性名、包含描述特性对象。...Object.defineProperty(),定义多个属性使用Object.defineProperties(),这个方法接受2个参数,第一个是属性所属对象,第二个是包含被定义属性对象。...获取属性内部特性方法有两个:Object.getOwnPropertyDescriptor()和Object.getOwnPropertyDescriptors()。

65820

面向对象中Object常用属性总结

学完Object属性,自己总结一些常用是Object常用属性Object.prototype:属性表示Object原型对象。...属性Object.prototype.constructor:特定函数,用户创建一个对象原型。 Object.prototype....描述:如果目标对象中属性 有相同键,则属性将被源中属性覆盖,后来属性将类似地覆盖早先属性Object.create():方法会使用指定原型对象及其属性去创建一个新对象。...语法:Object.freeze(obj) obj:将要被冻结对象 Object.getOwnPropertyDescriptor():方法返回指定对象上有一个自有属性对应属性描述符(自有属性是直接...Object.getOwnPropertySymbols():方法返回一个数组,该数组包含了指定对象自身(非继承)所有symbol属性键。

87820

js Object.defineProperty()详解

要修改属性默认特性,就必须使用 Object.defineProperty()方法 ;在了解Object.defineProperty()之前,需要先明白对象属性一些特性,明白了这些特性之后,对Object.defineProperty...(object,prop,descript) Object.defineProperty()接收三个参数: object: 要添加或者修改属性目标对象; prop: 要定义或修改属性名称; descript...: 是一个对象,里面是我们上述对象属性特性; 下面我们使用Object.defineProperty()分别演示数据属性和访问器属性; 注意:数据属性和访问器属性不能同时设置,也就是数据属性writable...定义多个属性Object.defineProperties() 在一个对象上同时定义多个属性可能性是非常大。...读取属性特性Object.getOwnPropertyDescriptor() Object.getOwnPropertyDescriptor()方法接收两个参数:属性所在对象和要取得其描述符属性

2.3K20

js对象属性

(let p in zhangsan){ console.log(zhangsan.hasOwnProperty(p),`${p}:${zhangsan[p]}`) } 参考代码 codepen关于js...方法 内容 备注 for in 可枚举,自身以及继承属性 对象以及继承,可枚举,不含 Symbol 属性 Object.keys(obj) 返回一个数组,包括对象自身(不含继承)所有可枚举属性键名...对象自身可枚举,不含 Symbol 属性 Object.getOwnPropertyNames(obj) 返回一个数组,包含对象自身所有属性(不含 Symbol 属性,但是包括不可枚举属性键名 对象自身...,包括不可枚举属性 Object.getOwnPropertySymbols(obj) 返回一个数组,包含对象自身所有 Symbol 属性键名 对象自身,symbol Reflect.ownKeys...(obj) 返回一个数组,包含对象自身所有键名,不管键名是 Symbol 或字符串,也不管是否可枚举。

15.6K10

js nextSibling属性和previousSibling属性

1:nextSibling属性属性表示当前节点下一个节点(其后节点与当前节点同属一个级别);如果其后没有与其同级节点,则返回null。...需要特别注意是:该属性在不同浏览器中执行结果并不都相同,见下面例示: 先来看一个例子: <input id=“a4” type=“button” οnclick...opera和safari对nextSibling处理方式与FF一致 2:previousSibling属性属性与nextSibling属性作用正好相反。...3:通过nextSibling或者 previousSibling所获得HTML标签元素对象属性问题 一般先通过nextSibling.nodeName来获知其标签名,或者通过nextSibling.nodeType...如果该nextSibling.nodeName = #text,则通过nextSibling.nodeValue来获知其文本值;否则,可以通过nextSibling.innerHTML等其他常用标签元素属性来获取其属性

6.2K30

JS面试点-Object.is和===区别?

Object.is() 方法判断两个值是否是相同值。表示两个参数是否相同布尔值 。...如果下列任何一项成立,则两个值相同: 两个值都是 undefined 两个值都是 null 两个值都是 true 或者都是 false 两个值是由相同个数字符按照相同顺序组成字符串 两个值指向同一个对象...两个值都是数字并且 都是正零 +0 都是负零 -0 都是 NaN 都是除零和 NaN 外其它同一个数字 这种相等性判断逻辑和传统 == 运算不同,== 运算符会对它两边操作数做隐式类型转换(如果它们类型不同...),然后才进行相等性比较,(所以才会有类似 "" == false 等于 true 现象),但 Object.is 不会做这种类型转换。...// false Object在严格等于基础上修复了一些特殊情况下失误,具体来说就是+0和-0,NaN和NaN。

1.2K30
领券