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

JS中 toString() & valueOf()

如果它返回一个原始值,js将这个值转换成字符串,并返还这个字符串结果。 2.如果对象没有toString()方法,或者这个方法并不返回一个原始值,那么js将调用valueOf()方法。...3.否则,js无法从toString()或者valueOf()获得一个原始值,因此这时它将抛出一个类型错误异常。...一般来说,对象到数字的转换过程中,js做了同样类似的事情,但这里它会首先尝试使用valueOf()方法: 1.如果对象具有valueOf()方法,后者返回一个原始值,则js将这个原始值转换成数字,并返回这个数字...(首先js转换成相应的字符串原始值,再继续将这个原始值转换成相应的数字类型,再返回数字) 3.否则,js抛出一个类型错误异常。  ...对象通过toString或valueOf方法转换为原始值,JS语言核心的内置类首先尝试使用valueOf(),再尝试使用toString() 一个小李子 “1” == true; 将返回true,转换形式是

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

valueOf与toString

valueOf与toString valueOf和toString是Object.prototype上的方法,在Js几乎所有的对象都会继承自Object,同样由于包装对象的原因,几乎所有的数据类型都能够调用这两个方法...valueOf JavaScript通过调用valueOf方法将对象转换为原始值,我们很少需要自己调用valueOf方法,当遇到要预期的原始值的对象时,JavaScript会自动调用它。...后者是object 前文提到过在JavaScript运行的过程中valueOf方法经常会被偷偷的调用,我们可以自行重写valueOf方法,在def.js中甚至相当灵活使用valueOf等方式实现了Ruby...Date 可读的时间字符串,例如Tue Oct 27 2020 16:08:48 GMT+0800 (中国标准时间) Function 声明函数的Js源代码字符串。...每日一题 https://github.com/WindrunnerMax/EveryDay 参考 https://github.com/tobytailor/def.js https://juejin.im

1K31

从ECMAscript标准文档看懂valueOf

方法 返回结果 Boolean.prototype.valueOf() 返回布尔值本身 Number.prototype.valueOf() 返回数字本身 String.prototype.valueOf...() 返回字符串本身 Symbol.prototype.valueOf() 返回Symbole本身 那么,或许有人问了那这几个重新定义的 valueOf 方法和定义在Object原型上的 valueOf...既然我们都知道js完全可以通过使用 call 和 apply 来改变this指向,那么也就是说完全这些方法可以被任意类型的值使用,那么此时的返回值又是什么呢?...接下来需要考虑的就是Date、Math、functioin等对象的原型是否定义了 valueOf 方法,通过搜索查阅手册可以发现在这些对象中只有Date对象重写了 valueOf 方法 ?...所以 Date对象的 valueOf 方法直接返回时间戳。

75110

关于Javascript中的valueOf与toString

var boolean = true boolean.toString() // "true" valueOf() valueOf()函数的作用是返回该object自身。...JavaScript对于Date对象定义了更加具有可读性的valueOf()方法: Date的valueOf()方法将返回一个时间戳数值,该数值为Date对象与1970年1月1日零时的时间差(以毫秒为单位...(Number(test)) // 10 valueOf alert(test == '10') // true valueOf alert(test === '10') // false valueOf...在进行强转字符串类型时将优先调用toString方法,强转为数字时优先调用valueOf。 在有运算操作符的情况下,valueOf的优先级高于toString。...下面给大家简单说下valueof和tostring的区别: valueOf():返回最适合该对象类型的原始值 toString(): 将该对象的原始值以字符串形式返回 这两个方法一般是交由JS去隐式调用

90310

【JAVA】探讨 Java 中 valueOf 和 parseInt 的区别

前言 在编程中,遇到类型转换,好像会经常用到 parseInt 和 valueOf,当然这里只拿 Integer 类型进行陈述,其他类型也是雷同的; 想必有读者也跟我一样,经常交叉使用这两个方法,但却不知道这两者到底有什么区别...,接下来就来探究一番;   区别 Integer.parseInt(s) 的作用就是把字符串 s 解析成有符号基本类型的 int; Integer.valueOf(s) 把字符串 s 解析成 Integer...result : -result; valueOf 照例查看源码: public static Integer valueOf(String s, int radix) throws NumberFormatException...Integer.IntegerCache.cache[i + 128] : new Integer(i); } 可以看出 valueOf(String s, int radix) 和 valueOf(String...() 方法还是大同小异的: Integer valueOf(int i):返回一个表示指定的 int 值的 Integer 实例; Integer valueOf(String s):返回保存指定的 String

12620

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

JavaScript中几乎所有的对象都继承了toString和valueOf这两个方法: valueOf()会把数据类型转换成原始类型 toString()会把数据类型转换成string类型 需要注意的是...,这两个方法在不同使用场景会有不同的优先级: 正常情况下,优先调用toString() 有运算操作符的情况下valueOf()的优先级高于toString() 当调用valueOf()方法无法运算后还是会再调用...toString()方法 我们可以改写这两个方法测试优先级: var n = { toString: function () { return 1 }, valueOf...//1 console.log(obj[n]);//2 除了上面三个方法之外,还是有一些会比较特殊,比如Date,应该还有很多我还不知道的优先级: var date=new Date(); date.valueOf

85520
领券