javaScript valueOf和toString方法在不同场景被调用进行数据转换

前端开发:JS中常用数据类型的转换以及使用场景集锦 前言 在前端开发中,关于数据转换也是使用频率非常高的知识点,尤其是常见数据类型之间的相互转换的使用频率就更高了,那么本篇博文就来分享一下关于JS中常用数据类型的转换使用,分享一下,方便后期查阅使用。 常用数据类型 在JS中有五种不同数据类型:number 、string 、boolean 、symbol(ES6新增属性)。两种不包含任何值的数据类型:null、undefined。四种引用数据类型(也称为对象类型):Object、Date、function、Array。 虽然上面把JS中的数据 阅读详情

看了篇英文的。。。。心累

说正事,Objects in JavaScript can be converted to primitives in three contexts:

javaScript对象在以下三种场景中会转换为原始数据类型。(primitives:英文是硬伤,这个单词意思表达的应该和Java中的基本数据类型一个意思,我会叫它元始数据类型、原语、基本数据。。。)

  1. Numeric
  2. String
  3. Boolean
字符串转换(String):
当需要一个对象的字符串表示时,发生字符串转换
如:alert(obj);

String(obj)也会做显示转换

转换规则:
1、存在toString方法,并且返回基本数据,则使用toString的返回值(所有的对象都有toString方法,也就是说正常情况转换执行到这里就结束了)。
2、如果valueOf存在并且返回基本数据,则使用valueOf返回的值
3、否则抛出异常


数值转换(Numeric):
javaScript中的另一种转换,没toString使用广泛,但是内部转换经常用到。

数值转换在以下两种情况发生:
1、需要一个数字的功能:比如Math.sin(obj),isNaN(obj),包括算数运算符:+object (+会强制转换object为Number类型).
2、在比较中,如obj == 'join'
===是例外,因为它不允许做任何类型转换,and also non-strict equality when both arguments are objects, not primitives: obj1 == obj2. 仅当二者只想同一个对象时返回true.

使用Number(obj)时也会有明确的数值转换

具体转换规则:
1、存在valueOf方法并且返回原语,则使用valueOf的值
2、不存在valueOf方法,存在toString方法并且返回原语,则使用toString的值
3、二者都不存在,则抛出异常。

内置对象中,Date同时支持数值转换和字符串转换
alert( new Date() ) // The date in human-readable form
alert( +new Date() ) // Microseconds till 1 Jan 1970

但是大部分对象没有valueOf方法,这意味着大部分数值转换由toString实现,更意味着数值转换并不一定得到Number类型的数据。


boolean转换:
Boolean转换发生在一个Boolean上下文中,如:if(obj),while(obj)

Boolean(obj)同样会有显式的boolean转换

转换规则:

[] == ![]为什么返回true?
表达式先计算右边![],context为boolean下对象为true(即[]为true),所以![]为false
现在变为:[] == false
对象和非对象比较转换为数字比较,右边变为0
左边对象调用toString方法得到""
""转换为数字0
0 == 0 结果为true


这是本人Chinglish翻译的,英语好的点这里http://javascript.info/tutorial/object-conversion

2023年金蝶云星辰初级顾问认证参考试题(1) 最新积累的考试真题,答案只供参考(49分T~T),欢迎大佬们更正,私聊我修改,有新的试题也可以私聊我,日后会完善题库!大家一起努力,预祝大家顺利通过!1.【简单】生产环节中,客户老板希望掌握材料的超发或漏发情况,,以便分析用料情况,对材料浪费进行管控,可以查看什么报表?⒉[中等】客户主营电气柜的生产销售,商品为非标品需定制,又因交期效短,需要边生产边补料,以下哪个功能最适合该客户场景?15.【简单】在给商品设置科目关联时,分别按照单个商品,商品类别,所有商品设置了对应客户,()优先级最高。 阅读详情

相关推荐

SIwave:在 SIwave 中释放计算频率扫描的强大功能

AEDT 的电路工具允许注入正确的电压和电流。要使用电路工具,SIwave 必须首先使用 PI 求解器求解结构的 S 参数。

jkh920184196的博客 1476

JS 中 valueOf() 方法的详解

JS 中 valueOf() 方法的详解 JavaScript 中的 valueOf() 方法用于返回指定对象的原始值,若对象没有原始值,则将返回对象本身。通常由JavaScript内部调用,而不是在代码中显式调用。 默认情况下,valueOf 方法由 Object 后面的每个对象继承。 每个内置的核心对象都会覆盖此方法以返回适当的值。 JavaScript 的许多内置对象都重写了该函数,以实现更适合自身的功能需要。因此,不同类型对象的 valueOf() 方法的返回值和返回值类型均可能不同。 不同类型

weixin_45242865的博客 3万+

抖音自定义卡片链接(图文链接)

抖音自定义可以自定义标题,打开链接,和展示图片 效果 主要代码 public void sendMessage(String conversationId, Object aBaseContent) throws Exception { // C233282u5.LIZIZ.LIZ().LIZIZ(LIZ).LIZ(obtain).LIZ(hLn).LIZ((AbstractC59811HHc) new H9Q()); Object HOa = ReflectionUtil

傅恒的博客 4140

toString()和valueOf()函数调用和优先级

最近水群的时候看见了一个题目: add(2)(3)(4); 简单了说就是链式调用,链式调用的方法有很多,jQuery的,underscore的和lodash这三个库采用了不同的方式。而上面这个就简单多了: function add(x) { var sum = x; var tmp = function (y) { sum = sum + y; return ...

weixin_34253126的博客 574

大语言模型在构建UNSPSC 分类数据中的应用

UNSPSC 是联合国标准产品和服务代码。本文研究如何利用大语言模型生成分类系统的分析

姚家湾博客 1874

IEC61850规约客户端软件开发实战(第六章)

IEC 61850标准中的GOOSE(Generic Object Oriented Substation Event,面向通用对象的变电站事件)功能是变电站自动化系统的核心通信机制,主要用于实现智能电子设备(IED)间高可靠性、低延时的实时信号传输。本章简述其核心功能与技术特点。

半青年的博客 1780

valueOf用法

其实valueOf有点类似于工厂模式。valueOf是个静态方法。 可以把对象转换为所需要的类型。 例如 Integer.valueOf("1005") 其实等价于 new Integer("1005")。valueOf可以转换字符,double,short,等等类型。同时 Double Long等对象也有相应的valueOf方法。 它最大的优势是不需要显式的建立对象,此外,java系统本身可以通过一定的优化提高valueOf的速度(例如预先构建 -128到127 的所有Integer对象。) 更多追问追

weixin_42844652的博客 1万+

Allegro如何去掉PCB内层未使用的过孔孔环?

在用Allegro进行PCB设计过程中,遇到铺铜铜箔被焊盘大量割断,导致铺铜不完整,这样就会导致铺铜过电流太小,影响板的性能,严重的会导致板工作不稳定,甚至不工作。解决办法:是去掉内层未使用的过孔孔环,增大过铜箔面积。

bhxc809751502的博客 2574

一眼毁三观:JS中令人发指的valueOf方法

剧透:文章末尾有两个小问题待解答,路过的兄弟请百忙之中抽空看下~~~ 彭老湿近期月报里提到了valueOf方法,兴致来了翻了下ECMA5里关于valueOf方法的介绍,如下: 15.2.4.4 Object.prototype.valueOf ( )When thevalueOfmethod is called, the following steps are taken:1...

dengrong8117的博客 982

黑猫带你学eMMC协议第4篇:eMMC概述

1 前言 声明: 本文依据eMMC JEDEC5.1协议及个人工作经验整理而成,如有错误请留言。 文章为个人辛苦整理,付费内容,禁止私自转载。 本文大约3000字,从emmc的内部结构框架、供电、总线、寄存器等各方面进行框架性的介绍,本章节内容不需要深入研究,读完本篇文章,只要能对emmc有个框架下的了解,就可以了。 2 内部结构框架 由图可以看出,emmc内部由两块组成:控制器 + 存储介质。emmc内部存储介质绝大部分为nand flash。 众所周知,我们需要存储数据到nand flash中,并

黑猫奥利奥的博客 3341

AUTOSAR从入门到精通-汽车电子电气架构(EEA)(二)

需求的传递并非完全是瀑布式的单向传递,而是双向的,只有被下游接受了的需求才是有效的需求,而且,下游是可以反向对上游提出需求的。当街区的设计完成之后,接下来要做的就是每栋建筑的详细设计,建筑的设计者发布的图纸中规定了房屋的主要结构、所在位置与周边环境的相互关系,以及屋中各种组件的位置与相互之间结合的关系,比如砖混结构、房屋的具体位置和朝向、卧室与客厅的相对位置与尺寸、马桶在卫生间中的位置等,还会对各种建筑材料的选取原则给出具体的标准,比如水泥的标号,钢筋的型号,各种电线的等级要求等等。

getusushu的博客 373

String.valueOf()使用方法

* String.valueOf()使用方法* String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 ,也就是 String.valueOf() 这个参数多载的方法 有以下几种 (1)String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串 (2)String.valueOf(char c) : 将 char 变量...

傲娇青年的博客 8624

2025年上半年第1批信息系统项目管理师论文真题解析与范文

文章首先分析了项目经理在交付绩效域中应关注的重点领域,然后按照项目管理五大过程组顺序,阐述了各过程组中与交付绩效域协同的绩效域及协调目标,最后制定了各过程组中交付绩效域的测量指标。本项目的实践表明,系统化的交付绩效管理不仅能保证项目成功,还能创造超出预期的业务价值。需要结合具体项目案例,按照五大过程组(启动、规划、执行、监控、收尾)顺序,分析各过程组中与交付绩效域协同的其他绩效域及其协调目标。价值交付连续性:建立敏捷交付机制,将项目分解为12个迭代周期,每周期交付可验证成果,确保价值持续流动。

Programming Talk 823

toString()函数与valueOf()函数

tostring 和 valueOf 函数是解决值的显示和运算的问题。所有的 Object 类型的数据都自带 toString 和 valueOf 函数。

读心悦 2287

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

JS中 toString() & valueOf()

原文链接:http://www.cnblogs.com/imwtr/p/4392041.html 数据的转换 所有对象继承了两个转换方法: 第一个是toString(),它的作用是返回一个反映这个对象的字符串 第二个是valueOf(),它的作用是返回它相应的原始值 toString() toString()可以看做是把一个数据转换成了相应字符串的形式,安照这个...

weixin_30332241的博客 86

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

js的toString toLocalString valueOf辨析记忆

toString toLocalString valueOf 从别的博客上看到的记录一下,勿喷 链接https://blog.youkuaiyun.com/liwenfei123/article/details/77995484 toString()、toLocaleString()、valueOf()三个方法的区别 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar...

weixin_42060149的博客 303

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

toString 和 valueOf 总结

两者的共同点与不同点:   共同点:二者都能用来数据转换,并且在输出对象时会自动调用。   不同点:二者并存的情况下,在数值运算中,优先调用了valueOf,字符串运算中,优先调用了toString,没有操作运算符的情况下,优先调用toString。 所有对象继承了两个转换方法: toString(),主要是把对象转换为字符串; valueOf(),主要把对...

weixin_30289831的博客 70

c++ tostring函数_全面分析toString与valueOf,并随手解决掉几道大厂必备面试题

作者:李白不吃茶vhttps://juejin.im/post/6873215243804213262基本上,所有JS数据类型都拥有这两个方法,null除外。它们俩是位于原型链上的方法,也是为了解决javascript值运算与显示的问题。valueOf 和 toString 几乎都是在出现操作符(+-*/==>时被调用(隐式转换)。toString返回一个表示该对象的字符串,当对象...

weixin_32404293的博客 6182

新人笔记之关于toString()和valueOf()以及Object.prototype.toString.call()的结合理解

一、先说说String(): String()是全局函数,把对象的值转换为字符串。 语法:String(obj); 任何值(对象)都有String()方法,执行过程是这样的:首先,如果该对象上有toString()方法,则使用该方法(无参数),其次就是没有toString方法,那就是 null 返回 "null",undefined返回"undefined"; 【个人理解:任何对...

weixin_30252155的博客 544

JS中各种的隐式数据转换

隐式转换介绍 · 1.2 隐式转换规则 · 1.3 坑一:字符串连接符与算术运算符隐式转换规则混淆 · 1.4 坑二:关系运算符:会把其他数据类型转换成number之后再比较关系 · 1.5 坑三:复杂数据类型在隐式转换时会先转成String,然后再转成Number运算 · 1.6-坑四:逻辑非隐式转换与关系运算符隐式转换搞混淆 1.1-隐式转换介绍 · 在js中,当运算符在运算时...

alihlz_39337506的博客 1477

每日一问——JS数据转换

1. [] == ![]结果为什么?为什么? 结果是true。首先!会将![]转换为布尔类型false,然后再对象与布尔类型相比较时会都转换为number进行比较,对象转number会先调用tostring转换为字符串再将字符串转换为Number类型。[]->’ '->0, 而false转为number类型也为0,所以结果为true。 2. JS中类型转换有哪几种? (这里直接借用的是...

qq_44758097的博客 248

JavaScript 类型转换实战:3 种方法精准判断 `NaN` 与处理 `null`/`undefined`

本文深入探讨JavaScript类型转换的实战技巧,重点介绍3种精准判断`NaN`的方法与处理`null`/`undefined`的策略。通过对比`isNaN()`、`Number.isNaN()`和自比较法的优劣,以及分析`||`、`??`操作符和默认参数的使用场景,帮助开发者避免常见陷阱并提升代码质量。

weixin_34408717的博客 434

JavaScript数据类型隐式转换原则总结(干货!)

这篇博客对JavaScript之中数据类型隐式转换做一个总结,叙述内容如有错误望大牛们指正 js的数据类型隐式转换主要分为三种情况: 1. 转换为boolean类型 2. 转换为number类型 3. 转换为string类型转换为boolean类型数据在 逻辑判断 和 逻辑运算 之中会隐式转换为boolean类型转换规则表: 数据类型 转换之后的值 数字 0 false Na

siboogi的博客 3468

JavaScript教程-25-Boolean对象

1:Boolean对象概述 Boolean对象代表两个值,true 和 false。 在 JavaScript 中,布尔值是基本数据类型。Boolean 对象是一个将布尔值进行封装的布尔对象。类似于java中的boolean和Boolean的关系。Boolean 对象主要用于提供将布尔值转换成字符串的 toString() 方法。当调用 toString() 方法将布尔值转换成字符串时(通常是...

qq_35938103的博客 195

谈 JavaScript 中的强制类型转换 (2. 应用篇)

这一部分内容是承接上一篇的, 建议先阅读谈 JavaScript 中的强制类型转换 (1. 基础篇) 前两章讨论了基本数据类型和基本包装类型的关系, 以及两个在类型转换中十分重要的方法: valueOf 和 toString 方法. 接下来的内容建立在前两章之上, 给出判断隐式类型转换结果的方法, 文章最后部分给出了多个练习以及解析, 用以检验文中讨论方法的正确性. 3 各种类型之间...

282

JavaScript的类型转换

JavaScript数据类型大体分为两类:primitive和object,primitive包括:string,boolean,number,undefined,null;object包括:object,array,function。 JavaScript在期待某种类型的地方,而该地方的数据类型是其他的类型的时候,JavaScript会自动地进行类型的转换,比如在if条件判断中,条件表达式需要...

weixin_30666943的博客 69
上一篇: javaScript判断数据类型
下一篇: javaScript中的static类型数据
五月西瓜
博客等级 码龄12年 4粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值