JS Object对象方法+验证演示

JS Object对象方法+验证演示

Object.is()

官方定义:

请添加图片描述
请添加图片描述

简单理解:Object.is():判断两个值是否为同一个值

验证演示:

console.log(Object.is(NaN, NaN)); ==>true
console.log(NaN === NaN);==>false

console.log(Object.is(undefined, undefined)); ==>true
console.log(undefined === undefined); ==>true

console.log(Object.is(null, null));==>true
console.log(null === null);==>true

console.log(Object.is(+0, -0));==>false
console.log(+0 === -0);==>true

console.log(Object.is("", ""));==>true
console.log("" === "");==>true

console.log(Object.is({}, {}));==>false
console.log({} === {});==>false

console.log(Object.is([], []));==>false
console.log([] === []);==>false

var one= { a: 1 };
var two = { a: 1 };
Object.is(one, one); ==> true
Object.is(one, two); ==> false

Object.freeze()

官方定义:Object.freeze() 方法可以冻结一个对象。一个被冻结的对象再也不能被修改;冻结了一个对象则不能向这个对象添加新的属性不能删除已有属性,不能修改该对象已有属性的可枚举性、可配置性、可写性,以及不能修改已有属性的值。此外,冻结一个对象后该对象的原型也不能被修改

简单理解:Object.freeze(obj):冻结对象,使无法修改内部的值

验证演示:

const one = {
  age: 18,
  name: "小白"
}
console.log(one.age); ==>18

Object.freeze(one)
one.age = 20
one["age"] = 20
delete one.age

console.log(one.age);==>18

Object.assign(target, …sources)

官方定义:
1.Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象分配到目标对象。它将返回目标对象。
2.如果目标对象中的属性具有相同的键,则属性将被源对象中的属性覆盖。后面的源对象的属性将类似地覆盖前面的源对象的属性。

简单理解:Object.assign(目标对象,后续对象):返回目标对象,前者与后者有冲突时,后者覆盖前者

验证演示:

var obj1 = {
  prop1: 30
}
var obj2 = {
  prop2: 40
}
var one = Object.assign(obj1, obj2)

console.log(one) ==>{ prop1: 30, prop2: 40 }
console.log(obj1)==>{ prop1: 30, prop2: 40 }
console.log(obj2)==>{ prop2: 40 }
var obj1 = {
    prop1: 30
}
var obj2 = {
    prop1: 20,
    prop2: 40
}
var one = Object.assign(obj1, obj2)

console.log(one)==>{ prop1: 20, prop2: 40 }
console.log(obj1)==>{ prop1: 20, prop2: 40 }
console.log(obj2)==>{ prop1: 20, prop2: 40 }

Object.keys()

官方定义:
Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致 。

简单理解:
Object.keys():若为对象,序列化对象属性名;若为数组,序列化下标

验证演示:

var one = Object.keys({a:1,b:2,c:3})
console.log(one) ==>[ 'a', 'b', 'c' ]

var two = Object.keys(["one","two","three"])
console.log(two) ==> [ '0', '1', '2' ]

var three = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.keys(three)); ==> ['2', '7', '100']
//分析:
序列化对象对象名
序列化数组下标

Object.values()

官方定义:
Object.values()方法返回一个给定对象自身的所有可枚举属性值的数组,值的顺序与使用for…in循环的顺序相同

简单理解:序列化对象属性值

验证演示:

var obj = { foo: 'bar', baz: 42 };
console.log(Object.values(obj)); ==> ['bar', 42]

Object.entries()

官方定义:
Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for…in 循环遍历该对象时返回的顺序一致.

简单理解:序列化对象键值对

验证演示:

let  obj1 = { foo: 'bar', baz: 42 };
console.log(Object.entries(obj1)); 
==>[ [ 'foo', 'bar' ], [ 'baz', 42 ] ]

let obj2 = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.entries(obj2));
==>[ [ '0', 'a' ], [ '1', 'b' ], [ '2', 'c' ] ]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值