8个常用JavaScript对象方法

2023-11-01

1.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 }

注意:如果源对象中的属性具有相同的键,则目标对象中的属性会被源中的属性覆盖。较晚来源的属性会覆盖较早来源的属性。
2.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]

3.Object.prototype.hasOwnProperty()
作用:返回一个布尔值,指示对象是否具有指定的属性作为它自己的属性。如果指定的属性是对象的直接属性,则该方法返回 true — 即使值为 null 或未定义。如果该属性是继承的或根本没有声明,则返回 false。
语法:hasOwnProperty(prop)
参数:
prop:要测试的属性的字符串名称或符号。
返回值:如果对象将指定的属性作为自己的属性,则返回true;否则为false。

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

4.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"]

5.Object.prototype.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"

注意:对于 Numbers 和 Big Ints,toString() 采用可选参数 radix,其值必须最小为 2,最大为 36。
6.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

7.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"

8.Object.is()
作用:判断两个值是否相同的方法。
语法:Object.is(value1, value2);
参数:
value1:要比较的第一个值。
value2:要比较的第二个值。
返回值:一个布尔表达式,指示两个参数是否具有相同的值。

// 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

8个常用JavaScript对象方法 的相关文章

随机推荐

  • 【Intel® RealSense™ SDK 2.0 】在【Linux】环境配置记录

    Intel RealSense SDK 2 0 在 Linux 环境配置记录 Intel RealSense SDK 2 0 官网 系统环境 ubuntu 18 04 建conda环境 conda create n real sense p
  • C语言实现移位密码体制

    问题描述 输入密钥K的值 加密算法 e x x k mod 26 即当前明文字母顺序 如A为1 加上K值之后对应的字母即为密文 解密算法 d y y k mod 26 与加密相反 解密是当前密文字母顺序减去K值对应的字母即为明文 26即26
  • python变量,数据类型,运算符

    这里写自定义目录标题 1 变量 python的变量不需要声明 变量在被使用前必须赋值 变量被赋值后才会被创建 变量赋值和其他语言一样 通过 赋值 例如 usr bin python3 a 1 整型变量 b 1 0 浮点型变量 cc my 字
  • R语言:常用apply函数(apply,tapply,sapply,lapply)用法介绍

    apply函数 对矩阵 数据框 数组 二维 多维 等矩阵型数据 按行或列应用函数FUN进行循环计算 并以返回计算结果 apply X MARGIN FUN X 数组 矩阵 数据框等矩阵型数据 MARGIN 按行计算或按按列计算 1表示按行
  • VsCode 下如何安装shader glsl开发环境

    1 2 安装后搜索glsl canvas 3 glsl linter 能判断语法是否错误的扩展插件 之后去https github com KhronosGroup glslang releases下载glslang 4 文件 首选项 用户
  • [LeetCode] Invert Binary Tree - 二叉树翻转系列问题

    目录 1 Invert Binary Tree 二叉树翻转 递归 题目概述 Invert a binary tree 4 2 7 1 3 6 9 to 4 7 2 9 6 3 1 Trivia This problem was inspir
  • Android依赖剔除和冲突解决

    剔除依赖 模块下build gradle 1 通过包名 模块名剔除 configurations all all exclude group com google guava module guava 2 通过包名剔除 configurat
  • 中小型企业网络组网与配置

    某企业拥有多个部门 如财务部 研发部 技术部等 每个部门使用的 IP 地址网段各不相同 为了便于管理 现需要将同一种部门的业务划分到同一 VLAN 中 不同类型的部门划分到不同 VLAN 中 二层交换原理 二层交换是指数据帧在数据流链路层的
  • C++中stack用法

    c stl栈容器stack用法介绍 stack堆栈容器 堆栈是一个线性表 插入和删除只在表的一端进行 这一端称为栈顶 Stack Top 另一端则为栈底 Stack Bottom 堆栈的元素插入称为入栈 元素的删除称为出栈 由于元素的入栈和
  • (科普)nlp-图解Attention+Transformer

    看文之前 容我多说句 写出来这篇文的作者们 牛逼轰轰 看不懂的好像懂了点什么 看得懂的好像又懂了什么 十万万个点赞 图解Attention seq2seq模型 NLP常用于生成任务的seq2seq结构 如 机器翻译 文本摘要 图像描述生成
  • java学习从入门到进阶的四个阶段送给迷茫的你

    写这篇总结 主要是记录下自己的学习经历 算是自己对知识的一个回顾 也给想要学习 Java 的提供一些参考 对于一些想要学习Java 又不知道从哪里下手 以及现在有哪些主流的 Java 技术 想必大家学习一门技术 前期都很想看到一些结果或成就
  • docker搭建rocketmq集群

    借鉴于 https www cnblogs com qdhxhz p 11096682 html 但是其中有一些错误 本人进行了修改 docker compose yml version 3 5 services rmqnamesrv a
  • RTX3060下双系统安装Ubuntu22.04并配置显卡驱动(超简单)、安装cuda12.1

    首先准备一个启动盘 准备具体步骤在此省略 在windows下准备一块未分区的磁盘空间 插入U盘重启电脑 在重启过程中一直按DEL键 不同电脑按键不同 进入BIOS界面 直接选择U盘空间 点击continue等待 其他的不用管 只需要点两下
  • JDK编译时出现乱码问题(以JDK8(1.8)和JDK17为例)

    先看代码 写个最简单的HelloWorld public class HelloWorld public static void main String args System out println Hello World System
  • 42个Python实用小例子[内附200+代码地址]

    经常有同学苦恼 学了python基础之后找不到合适的练手机会 为此 有位热心人创建了一个项目 搜集整理了一堆实用的python代码小例子 这些小例子包括但不限于 Python基础 Web开发 数据科学 机器学习等方向 短小精炼 力争让你60
  • 深度优先遍历DFS (岛屿问题)java

    算法之深度优先遍历 DFS 最近在学习DFS和BFS 所以做一些学习的笔记 这里是深度遍历 首先 比较常见的深度遍历题目就是网格题 可抽象为二维数组 在LeetCode中常见的是岛屿问题 思想 深度优先遍历的思想可以理解为 找到一个起始点S
  • Vue基础--Vue中的双向绑定v-model指令

    一 v model的作用和使用场景 1 1 v model指令介绍 期望的绑定值类型 根据表单输入元素或组件输出的值而变化 可以下下面元素使用
  • BSM的两个基本问题与python实现(欧式期权定价公式)

    在我们的定义中 定量分析是数学或统计学方法在市场数据上的应用 John Forman BSM定价模型的两个基本问题 隐含波动率 以某些到期日的期权报价倒推出这些期权的隐含波动率 并汇出图表 这是期权交易者和风险管理者每天都要面对的任务 蒙特
  • c++ 引用 函数重载

    定义一个学生的结构体 包含学生的姓名 年龄 成绩 性别 学生的成绩 姓名 定义为私有权限 定义一个学生类型的结构体变量 设置公有函数用于给学生的成绩和名字进行赋值 结构体中的函数 结构体中声明 结构体外定义 include
  • 8个常用JavaScript对象方法

    1 Object assign 作用 将所有可枚举的自身属性从一个或多个源对象复制到目标对象 语法 Object assign target sources 参数 target 目标对象 应用源属性的对象 修改后返回 sources 源对象