返回
Object与Array上的属性和方法全面剖析
前端
2024-02-18 11:19:46
Object和Array的异同
Object和Array都是JavaScript中内置的两种数据类型,它们都能够存储数据,但也有着一些区别。
- Object :Object是一种键值对的数据结构,它可以通过属性名来访问其值。Object可以存储任意类型的数据,包括其他Object、Array甚至函数。
- Array :Array是一种有序的数据结构,它通过索引来访问其元素。Array只能存储简单数据类型,如字符串、数字和布尔值。
相同点 :
- forEach()方法 :forEach()方法用于遍历数组或对象中的每个元素,并对每个元素执行一个指定的函数。
- map()方法 :map()方法用于遍历数组或对象中的每个元素,并对每个元素执行一个指定的函数,并返回一个包含所有结果的新数组或对象。
不同点 :
- forEach()方法不会修改原数组或对象,而map()方法会返回一个新的数组或对象。
- forEach()方法不支持返回值,而map()方法支持返回值。
Object.assign()方法
Object.assign()方法用于将一个或多个目标对象的值合并到源对象上,如果出现冲突,保留目标对象的值。
语法:
Object.assign(target, ...sources)
- target :目标对象,将其他对象的值合并到该对象上。
- sources :要合并到目标对象上的一个或多个源对象。
示例:
const target = {
name: 'John Doe',
age: 30
};
const source1 = {
city: 'New York',
country: 'USA'
};
const source2 = {
job: 'Software Engineer',
company: 'Google'
};
Object.assign(target, source1, source2);
console.log(target);
输出:
{
name: 'John Doe',
age: 30,
city: 'New York',
country: 'USA',
job: 'Software Engineer',
company: 'Google'
}
Object.is()方法
Object.is()方法用于判断两个值是否相同。如果下列任何一项成立,则两个值相同:
- 两个值都是NaN。
- 两个值都是相同类型的基本值,并且值相同。
- 两个值都是相同类型的对象,并且它们的属性值完全相同。
语法:
Object.is(value1, value2)
- value1 :要比较的第一个值。
- value2 :要比较的第二个值。
示例:
console.log(Object.is(NaN, NaN)); // true
console.log(Object.is(1, 1)); // true
console.log(Object.is('foo', 'foo')); // true
console.log(Object.is(true, true)); // true
console.log(Object.is(false, false)); // true
const obj1 = {
name: 'John Doe',
age: 30
};
const obj2 = {
name: 'John Doe',
age: 30
};
console.log(Object.is(obj1, obj2)); // false
输出:
true
true
true
true
true
false
总结
Object和Array是JavaScript中两种常用的数据类型,它们都有着各自的属性和方法。Object.assign()方法用于将一个或多个目标对象的值合并到源对象上,如果出现冲突,保留目标对象的值。Object.is()方法用于判断两个值是否相同。