首页 > 编程语言 >JavaScript Object valueOf & toString All In One

JavaScript Object valueOf & toString All In One

时间:2024-05-15 17:07:46浏览次数:20  
标签:Web valueOf Object https JavaScript developer

JavaScript Object valueOf & toString All In One

class ArrayWrapper {
  arr: number[];
  constructor(nums: number[]) {
    this.arr = nums;
  }
  // ✅ 改写 Object 内置方法 valueOf, 返回一个 number 整数 
  // ❓ object 相加 (本质上是 object 序列化后的 string 相加 ✅) => number 相加
  valueOf(): number {
    return this.arr.reduce((sum, i) => sum + i, 0);
  }
  // 序列化
  toString(): string {
    // return JSON.stringify(arr);
    return `[${this.arr.join(',')}]`;
  }
};

/* 

valueOf


https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures


https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf

The valueOf() method of Object instances converts the this value to an object. This method is meant to be overridden by derived objects for custom type conversion logic.

Object 实例的 valueOf() 方法将 this 值转换为对象。此方法旨在由派生对象重写以实现自定义类型转换逻辑。


https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString


https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toString

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/valueOf




https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toString

Instance methods

~https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/valueOf~ ❌

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf ✅

 */

/**
 * const obj1 = new ArrayWrapper([1,2]);
 * const obj2 = new ArrayWrapper([3,4]);
 * obj1 + obj2; // 10
 * String(obj1); // "[1,2]"
 * String(obj2); // "[3,4]"
 */

https://leetcode.com/problems/array-wrapper/submissions/1258562707/?envType=study-plan-v2&envId=30-days-of-javascript

demos

(

标签:Web,valueOf,Object,https,JavaScript,developer
From: https://www.cnblogs.com/xgqfrms/p/18194293

相关文章

  • Mura CMS processAsyncObject SQL注入漏洞
    MuraCMSprocessAsyncObjectSQL注入漏洞漏洞描述该漏洞允许攻击者在某些API请求中注入恶意SQL代码,来访问或修改数据库信息,甚至可能获得对系统的完全控制,主要危害包括未授权访问敏感数据以及可能对系统完整性造成的损害Fofa:body="PoweredbyMuraCMS"POCPOST/index.cfm......
  • Playwright执行 JavaScript 脚本:探索浏览器自动化的新境界
    前言我们在进行web自动化时,经常遇到一些不好操作的元素,普通的元素定位和操作容易报错,如果我们使用的selenium的话,就可以使用selenium调用js脚本进行操作。在playwright中也有类似的方法,使用page.evaluate()执行JavaScript脚本。page.evaluate()和page.evaluate_handle()之间的......
  • (MEGA详解)Memory enhanced global-local aggregation for video object detection (CVPR
    在视频中检测物体和在图像中检测物体的最大区别在于:信息存在于时间维度中。视频中孤立的帧可能会出现运动模糊、遮挡或失焦等问题,自然可以想到从整个视频中寻找线索来识别物体。当我们无法确定一个目标的类别时,我们会从其它帧中寻找一个与当前目标具有高度语义相似性的独特目标,并......
  • java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBea
    简介前排提示:这个错误一般是由于Spring新版本导致的与其他框架不兼容现象,解决办法一般是升级其他框架版本。使用springboot-3.2.5和myabtis-plus-3.5.0搭建开发环境时,启动Springboot程序时报错,报错信息:点击查看代码java.lang.IllegalArgumentException:Invalidvalu......
  • JavaScript中的 '===' 和 '=='
    在JavaScript中,== 和 === 都是用于比较值的相等性的运算符,但是它们的行为略有不同。== 运算符用于比较值的相等性,而不考虑它们的数据类型。这意味着如果两个值的值相等,即使它们的数据类型不同,它们也会被认为是相等的。例如,== 会将字符串 "123" 与数字 123 视为相等。......
  • Object.values()对象遍历
    Object.keys() 对象的遍历 返回给定对象所有可枚举属性的数组;是属性名组成的数组letobj={a:1,b:2,c:3};Object.keys(obj).map((key)=>{console.log(key,obj[key]);}); Object.values() 对象的遍历返回一个给定对象自身的所有属性值的......
  • JavaScript 生成32位UUID
    functionuuid(){varlen=32;//32长度varradix=16;//16进制varchars='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');varuuid=[],i;radix=radix||chars.length;if(......
  • JavaScript 原型链与继承问答(第一天)
    1、在编程语言中,什么叫语法糖在编程语言中,"语法糖"是指一种编程语言的语法功能,它并不改变语言的功能,但可以让代码更易读、更易写。它是一种语法上的简化,让程序员能够用更少的代码表达相同的逻辑。比如es6中,一个对象想复用另外一个对象的所有字段,可以这样constobj2={...obj......
  • 深入探索JavaScript中的structuredClone:现代深拷贝的解密指南
    在JavaScript中,实现深拷贝的方式有很多种,每种方式都有其优点和缺点。今天介绍一种原生JavaScript提供的structuredClone实现深拷贝。下面列举一些常见的方式,以及它们的代码示例和优缺点:1.使用JSON.parse(JSON.stringify(obj))代码示例:functiondeepClone(obj){re......
  • 比较 Swift 中的闭包和 Objective-C 中的 Block
    在iOS开发中,闭包(Swift)和Block(Objective-C)都是用于实现匿名函数的重要概念。它们在很多方面都有相似之处,但也存在一些显著的差异。本文将从应用和原理两个层面对Swift中的闭包和Objective-C中的Block进行比较和分析。1.应用层面的比较1.1相似之处功能性相同:闭包和......