首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS中 toString() & valueOf()

如果它返回一个原始值,js将这个值转换成字符串,并返还这个字符串结果。 2.如果对象没有toString()方法,或者这个方法并不返回一个原始值,那么js将调用valueOf()方法。...一般来说,对象到数字的转换过程中,js做了同样类似的事情,但这里它会首先尝试使用valueOf()方法: 1.如果对象具有valueOf()方法,后者返回一个原始值,则js将这个原始值转换成数字,并返回这个数字...2.否则,如果对象具有toString()方法,后者返回一个原始值,则js将转换并返回。...对象通过toString或valueOf方法转换为原始值,JS语言核心的内置类首先尝试使用valueOf(),再尝试使用toString() 一个小李子 “1” == true; 将返回true,转换形式是...如果他它的其中一个操作数是对象,则js将使用特殊的方法将对象转换成原始值,而不是使用其他算术运算符的方法执行对象到数字的转换,”==“运算符类似 和”==“一样,”<"与其他运算符也会做对象到原始值的转换

1.7K10
您找到你想要的搜索结果了吗?
是的
没有找到

简单说 JavaScript中的tostring( ) 与 valueOf( )方法

数组、函数、和正则表达式简单的继承了这个默认方法,调用这些类型的实例的valueOf( )方法只是简答返回对象本身。...好了,我们现在已经了解toString( )方法valueOf( )方法了,下来我们来说说,对象到字符串和对象到数字的转换。...2、如果对象没有toString( )方法,或者这个方法并不返回一个原始值,那么JavaScript会调用valueOf( )方法。如果存在这个方法,则JavaScript调用它。...数组继承了默认的valueOf( )方法,这个方法返回一个对象而不是一个原始值,因此,数组到数字的转换则调用toString( )方法。空数组转换为空字符串,空字符串转换为数字0。...[]==true 与 []==true 引发的思考 简单说 通过JS的隐式转换,关键时刻救你一命

1.3K40

String.valueOf()

由 基本数据型态转换成 String String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 也就是 String.valueOf() 这个参数多载的方法 有下列几种...String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串 String.valueOf(char c) : 将 char 变量 c 转换成字符串 String.valueOf...data 中 由 data[offset] 开始取 count 个元素 转换成字符串 String.valueOf(double d) : 将 double 变量 d 转换成字符串 String.valueOf...(float f) : 将 float 变量 f 转换成字符串 String.valueOf(int i) : 将 int 变量 i 转换成字符串 String.valueOf(long l) :...数字的基本数据型态 要将 String 转换成基本数据型态转 大多需要使用基本数据型态的包装类别 比如说 String 转换成 byte 可以使用 Byte.parseByte(String s) 这一类的方法如果无法将

82370

valueOf与toString

valueOf与toString valueOf和toString是Object.prototype上的方法,在Js几乎所有的对象都会继承自Object,同样由于包装对象的原因,几乎所有的数据类型都能够调用这两个方法...valueOf JavaScript通过调用valueOf方法将对象转换为原始值,我们很少需要自己调用valueOf方法,当遇到要预期的原始值的对象时,JavaScript会自动调用它。...默认情况下,valueOf方法由Object后面的每个对象继承。每个内置的核心对象都会覆盖此方法以返回适当的值,如果对象没有原始值,则valueOf将返回对象本身。...后者是object 前文提到过在JavaScript运行的过程中valueOf方法经常会被偷偷的调用,我们可以自行重写valueOf方法,在def.js中甚至相当灵活使用valueOf等方式实现了Ruby...,通常来说是会优先调用toString()方法,而有运算操作符的情况下valueOf()的优先级高于toString(),当调用valueOf()方法无法运算后还是会再调用toString()方法

1K31

从ECMAscript标准文档看懂valueOf

P.S.最近在看dayjs的源码,源码上用到了 valueOf 方法,虽然知道这个方法,但是很少接触,就试着找来了ECMAscript标准文档来看看标准的定义。...我们还需要看看各种类型自身的原型上是否定义了 valueOf 方法: ?...既然我们都知道js完全可以通过使用 call 和 apply 来改变this指向,那么也就是说完全这些方法可以被任意类型的值使用,那么此时的返回值又是什么呢?...接下来需要考虑的就是Date、Math、functioin等对象的原型是否定义了 valueOf 方法,通过搜索查阅手册可以发现在这些对象中只有Date对象重写了 valueOf 方法 ?...因此根据上述的查阅取证,总结一下 valueOf: 定义在 Object 的原型上的 valueOf 方法内部调用了内部的方法 ToObject(),而 ToObject() 方法除了 Undefined

75110

关于Javascript中的valueOf与toString

: 所有对象继承了两个转换方法: toString(): 它的作用是返回一个反映这个对象的字符串 valueOf():它的作用是返回它相应的原始值 toString() toString()函数的作用是返回...与toString()一样,定义类时可以实现新的valueOf()方法,从而返回需要的结果。...JavaScript对于Date对象定义了更加具有可读性的valueOf()方法: Date的valueOf()方法将返回一个时间戳数值,该数值为Date对象与1970年1月1日零时的时间差(以毫秒为单位...在进行强转字符串类型时将优先调用toString方法,强转为数字时优先调用valueOf。 在有运算操作符的情况下,valueOf的优先级高于toString。...下面给大家简单说下valueof和tostring的区别: valueOf():返回最适合该对象类型的原始值 toString(): 将该对象的原始值以字符串形式返回 这两个方法一般是交由JS去隐式调用

90310
领券