对象操作

27 阅读5分钟

常用的Javascript对象方法

Object.is() 是一种判断两个值是否相同的方法。 Object.assign() 方法用于将所有可枚举的自身属性从一个或多个源对象复制到目标对象。

1Object.is()

2Object.assign()

3Object.entries()

4Object.values()

5Object.prototype.hasOwnProperty()

6Object.keys()

7Object.prototype.toString()

8Object.freeze()


1Object.is()

Object.is() 是一种判断两个值是否相同的方法。

语法:Object.is(要比较的第一个值, 要比较的第二个值);

返回值:一个布尔表达式,指示两个参数是否具有相同的值。

例子:

// Case 1: Evaluation result is the same as using '==='
Object.is(25, 25);                // true
Object.is('foo', 'bar');          // false
Object.is(foo, foo);              // true
// Case 2: Signed zero
Object.is(0, -0);                 // false
Object.is(0n, -0n);               // true
// Case 3: NaN
Object.is(NaN, 0/0);              // true
Object.is(NaN, Number.NaN)        // true



// -----------------------------------------------------------------



2Object.assign()

Object.assign() 方法用于将所有可枚举的自身属性从一个或多个源对象复制到目标对象。

语法:Object.assign(target, ...sources)

参数:

target:目标对象——应用源属性的对象,修改后返回。

sources:源对象——包含你要应用的属性的对象。

返回值:修改后的目标对象。

例子:

const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };
const returnedTarget = Object.assign(target, source);
console.log(target);
// expected output: Object { a: 1, b: 4, c: 5 }
console.log(returnedTarget);
// expected output: Object { a: 1, b: 4, c: 5 }
注意:如果源对象中的属性具有相同的键,则目标对象中的属性会被源中的属性覆盖。较晚来源的属性会覆盖较早来源的属性。



// -----------------------------------------------------------------




3Object.entries()

Object.entries() 方法返回给定对象自己的可枚举字符串键属性 [key, value] 对的数组。

它类似于使用 for...in 循环进行迭代,除了 for...in 循环还会枚举原型链中的属性。属性的顺序与通过手动循环对象的属性值给出的顺序相同。

语法:Object.entries(obj)

参数:

obj:要返回其自己的可枚举字符串键属性 [key, value] 对的对象。

返回值:给定对象自己的可枚举字符串键属性 [key, value] 对的数组。

例子:

const object1 = {name: "David", age: 23};
for (const [key, value] of Object.entries(object1)) {
  console.log(`${key}: ${value}`);
}
// "name: David"
// "age: 23"



// -----------------------------------------------------------------




4Object.values()

Object.values() 方法返回给定对象自己的可枚举属性值的数组,其顺序与 for...in 循环提供的顺序相同。

语法:Object.values(obj)

参数:

obj:要返回其可枚举自身属性值的对象。

返回值:包含给定对象自己的可枚举属性值的数组。

例子:

const object1 = {
  a: 'somestring',
  b: 42,
  c: false
};
console.log(Object.values(object1));
// expected output: Array ["somestring", 42, false]



// -----------------------------------------------------------------



5Object.prototype.hasOwnProperty()

hasOwnProperty() 方法返回一个布尔值,指示对象是否具有指定的属性作为它自己的属性。

如果指定的属性是对象的直接属性,则该方法返回 true — 即使值为 null 或未定义。如果该属性是继承的或根本没有声明,则返回 false。

语法:hasOwnProperty(prop)

参数

prop:要测试的属性的字符串名称或符号。

返回值:如果对象将指定的属性作为自己的属性,则返回true;否则为false。

例子:

const object1 = {};
object1.property1 = 42;
console.log(object1.hasOwnProperty('property1'));
// expected output: true
console.log(object1.hasOwnProperty('toString'));
// expected output: false
console.log(object1.hasOwnProperty('hasOwnProperty'));
// expected output: false


// -----------------------------------------------------------------



6Object.keys()

Object.keys() 方法用于返回给定对象自己的可枚举属性名称的数组,以与普通循环相同的顺序迭代。

语法:Object.keys(obj)

参数:

obj:要返回可枚举自身属性的对象。

返回值:表示给定对象的所有可枚举属性的字符串数组。

例子:

const object1 = {
  a: 'somestring',
  b: 42,
  c: false
};
console.log(Object.keys(object1));
// expected output: Array ["a", "b", "c"]


// -----------------------------------------------------------------




7Object.prototype.toString()

toString() 方法返回一个表示对象的字符串。当对象将被表示为文本值或以期望字符串的方式引用对象时,将自动调用此方法 id。默认情况下,toString() 方法由从 Object 继承的每个对象继承。

语法:toString()

返回值:表示对象的字符串。

例子:

function Dog(name) {
  this.name = name;
}
const dog1 = new Dog('Gabby');
Dog.prototype.toString = function dogToString() {
  return `${this.name}`;
};
console.log(dog1.toString());
// expected output: "Gabby"
注意:对于 NumbersBig IntstoString() 采用可选参数 radix,其值必须最小为 2,最大为 36// -----------------------------------------------------------------



8Object.freeze()

Object.freeze() 方法冻结一个对象,这意味着它不能再被更改。冻结对象可防止向其添加新属性,防止删除现有属性,防止更改现有属性的可枚举性、可配置性或可写性,并防止更改现有属性的值。它还可以防止其原型被更改。

语法:Object.freeze(obj)

参数:

obj:要冻结的对象。

返回值:传递给函数的对象。

例子:

const obj = {
 prop: 42
};
Object.freeze(obj);
obj.prop = 33;
// Throws an error in strict mode
console.log(obj.prop);
// expected output: 42

字符串的常用属性:

     .length   字符串的长度

          var str = '测试字符串相关长度  ';
          console.log(str.length); //11

     ------------------------------------------------

     .trim();   干掉字符串两端的空格

          var str = '测试字符串相关长度  ';
          console.log(str.length);  // 11
          var str2 = str.trim();
          console.log(str2.length); // 9

     ------------------------------------------------


     .indexOf(要找的字符串,从某个位置开始的索引);返回的是这个字符串的索引值,没找到则返回-1

          var str = '测试字符串相关长度  ';
          var str2 = str.indexOf('字', 0);
          console.log(str2); // 2


     ------------------------------------------------

      .lastIndexOf(要找的字符串);从后向前找,但是索引仍然是从左向右的方式,找不到则返回-1

          var str = '测试字符串相关长度  ';
          var str2 = str.lastIndexOf('字', 0);
          console.log(str2); // 2


     ------------------------------------------------

     .replace("原来的字符串","新的字符串");用来替换字符串的

          var str = '测试字符串相关长度  ';
          var str2 = str.replace('字','kk');
          console.log(str2); // 测试kk符串相关长度  


     ------------------------------------------------


     .slice(开始的索引,结束的索引); 从索引5的位置开始提取,到索引为10的前一个结束,没有10,并返回这个提取后的字符串

          var str = '测试字符串相关长度  ';
          //  console.log(str.length);
          var str2 = str.slice(1, 5);
          console.log(str2);


     ------------------------------------------------

     .split("要干掉的字符串",切割后留下的个数);切割字符串 ,返回数组 ,将字符串转成数组
     
          var str = '测试字符串相关长度  ';
          var str2 = str.split('字');
          console.log(str2); //  ['测试', '符串相关长度  ']

     ------------------------------------------------


     .substr(开始的位置,个数);返回的是截取后的新的字符串

          var str = '测试字符串相关长度  ';
          var str2 = str.substr(2,6);
          console.log(str2); //字符串相关长

     ------------------------------------------------

     .substring(开始的索引,结束的索引),返回截取后的字符串,不包含结束的索引的字符串

          var str = '测试字符串相关长度  ';
          var str2 = str.substring(2,6);
          console.log(str2); //字符串相


     ------------------------------------------------
      .concat(字符串1,字符串2,...);返回的是拼接之后的新的字符串

          var str = '测试字符串相关长度==>';
          var str2 = str.concat('11','33');
          console.log(str2); //测试字符串相关长度==>1133

     ------------------------------------------------
     
     * .toLocaleLowerCase();转小写

     ------------------------------------------------

     * .toLowerCase();转小写

     ------------------------------------------------

     * .toLocaleUpperCase()转大写

     ------------------------------------------------

     * .toUpperCase();转大写

     ------------------------------------------------

     * .charAt(索引),返回值是指定索引位置的字符串,超出索引,结果是空字符串

     ------------------------------------------------

     * .fromCharCode(数字值,可以是多个参数),返回的是ASCII码对应的值

     ------------------------------------------------

    

原文链接:blog.csdn.net/qq_38244874…