toSring和valueof 两者都是对象的方法!前者返回对象的字符串,后者返回对象的原始值,如果没有原始值则返回对象本身!

1.toSring()

直接看代码

console.log((1).toString());//1
console.log((10).toString(2))//1010
console.log(("1").toString());//1
console.log((false).toString());//false
console.log(({p:1}).toString());//[object,object]
console.log((undefined).toString());//报错
console.log((null).toString());//报错
console.log((function(){}).toString());//function(){}
console.log([1,2,3,4].toString());//1,2,3,4
console.log((new Date()).toString())//Fri Jul 03 2020 17:20:11 GMT+0800 (中国标准时间)

由于是对象的方法,所以必须要是对象,由于1,“”1“”之前上篇文章说下,他是实例化出来的对象,只不过包装对象自己内部做了处理,生命周期很短,但是它原型上仍然有toString方法,不懂的可以点击这里!数组的这里也有个坑,数组也是对象,为什么对象返回是[object,object],而数组返回的是对应的字符串,其实数组覆盖了Object.toString方法,然后将连接数组并返回一个字符串,其中包含用逗号分隔的每个数组元素(相当于Array.join())!

var test= Object.prototype.toString;
console.log(test.call(1));//[object Number]
console.log(test.call("1"));//[object String]
console.log(test.call(false));//[object Boolean]
console.log(test.call({p:1}));//[object object]
console.log(test.call(undefined));//[object undefined]
console.log(test.call(null));//[object null]
console.log(test.call(function(){}));//[object Function]
console.log(test.call([1,2,3,4]));//[object Array]
console.log(test.call(new Date()));//[object Date]
console.log(test.call(new RegExp()));//[object RegExp]

Object.prototype.toString.toString()能够很好的判断数据的类型及内置对象

2.vauleOf()

也先看代码吧

console.log((1).valueOf());//1
console.log((10).valueOf(2))//报错
console.log(("1").valueOf());//1
console.log((false).valueOf());//false
console.log(({p:1}).valueOf());//{p:1}
console.log((undefined).valueOf());//报错
console.log((null).valueOf());//报错
console.log((function(){}).valueOf());//function(){}
console.log([1,2,3,4].valueOf());//[1,2,3,4]
console.log((new Date()).valueOf());//1593767848260

如果对象没有原始类型值就不作处理,直接返回对象本身!这里new Date()返回的是一堆数字,而toSring返回的是中文字符串!

总结:

1.toString()返回的是字符串,而valueOf()返回的是原始值,没有原始值返回对象本身
2.undefined和null都没有toString()和valueOf()方法
3.Date类型的toString()返回的表示时间的字符串;valueOf()返回的是现在到1970年1月1日的毫秒数
4.Number类型的toString()方法可以接收转换基数,返回不同进制的字符串形式的数值;而valueOf()方法无法接受转换基数
5.Object.prototype.toString.toString()能够很好的判断数据的类型及内置对象

彻底了解toString和valueOf区别相关推荐

  1. toString与valueOf区别

    对应视频分享:点击进入 基本上,javascript中所有数据类型都拥有valueOf和toString这两个方法,null和undefined除外.它们俩解决javascript值运算与显示的问题, ...

  2. 26.JavaScript对象和基础类型之间的转换、hint、Symbol.toPrimitive、toString、valueOf

    文章目录 对象-基础类型转换 写在前面 对象类型转换规则 对象类型转换的结果 Hint String Number Default 转换需要的三个对象方法 Symbol.toPrimitive() t ...

  3. 通过char[]获得字符串new String(chars) || chars.toString() || String.valueOf(chars)对比

    今天刷Leecode49. 字母异位词分组,遇到一个通过char[]获得字符串的问题,记录一下new String(chars) || chars.toString() || String.value ...

  4. js中toString()和String()区别详解

    转载自  js中toString()和String()区别详解 我们知道String()与 .toString()都是可以转换为字符串类型,但是String()与 .toString()的还是有区别的 ...

  5. java e.getmessage() null,浅谈Java异常的Exception e中的egetMessage()和toString()方法的区别...

    Exception e中e的getMessage()和toString()方法的区别: 示例代码1: public class TestInfo { private static String str ...

  6. 一文看懂JS里隐式转换、toString() 和 valueOf()

    js-看懂隐式转换toString 和 valueOf js隐式类型转换 数值类型和布尔类型的相加 字符串和数字相加 隐式类型转换隐藏一些错误 isNaN() 对象的隐式转换 强制类型转换 - &qu ...

  7. 各种对象上的 toString 方法的区别和关联

    各种对象上的 toString 方法的区别和关联 问:请简述一下用于判断数据类型都有哪些方法? 答:巴拉巴拉--小魔仙 在判断数据类型的时候,有一种方式可以清晰直接地区分出所有的数据类型,即 Obje ...

  8. String.valueOf()方法与toString()方法的区别

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 两者都是把ObJect对象转化为String 类型. 2.string.valueof()方法 ...

  9. 搞懂toString()与valueOf()的区别

    一.toString() 作用:toString()方法返回一个表示改对象的字符串,如果是对象会返回,toString() 返回 "[object type]",其中type是对象 ...

最新文章

  1. LiveData使用和生命感知原理
  2. php数组,常量,遍历等
  3. Android从普通发送和接收短信到对短信进行拦截
  4. JSON数据从OSS迁移到MaxCompute最佳实践
  5. 在linux上实现DllMain + 共享库创建方法
  6. java 基础 —— 文件操作(File)
  7. 2020年 显卡天梯图 / Top Graphics Ranking
  8. c标签 if else c标签 总结
  9. 曲线运动与万有引力公式_干货|曲线运动与万有引力定律相关解题技巧
  10. UWP-Naïve Media Player 2.0
  11. yarn中MR作业报错Java heap space
  12. 没想到吧?快手竟然给厕所上安装了计时器,或许职场从此再无「带薪拉屎」...
  13. sublime3:解决拼音不跟随问题+markdown插件
  14. Ethereum非同质化通证(NFT)的编写与部署
  15. crh寄存器_STM32 学习笔记(寄存器)---2
  16. ARCENGINE开发经典贴(转)
  17. 蓝桥杯真题:递增序列
  18. openharmony移植之编写电阻触摸屏驱动
  19. 使用JavaScript动态添加HTML语句后,事件失效的解决办法
  20. autojs之悬浮窗按钮暂停脚本~一种很笨的方法,但是可以实现暂停脚本的功能

热门文章

  1. setTimeout()和clearTimeout用法详解
  2. MyBatis逆向工程 Generator
  3. 黑猴子的家:Ubuntu18.04.2 安装 QQ 就是这么简单
  4. 【随机过程】14 - 离散时间马氏链与转移概率
  5. 问题三十五: 怎么用ray tracing画二次曲面(quadratic surfaces)(2)——单页双曲面、双页双曲面、椭圆锥面、椭圆柱面
  6. 【iBoard 电子学堂】【iHMI43】演示实例之:电参数测试仪演示工程
  7. 建筑技术开发杂志建筑技术开发杂志社建筑技术开发编辑部2023年第5期目录
  8. [浪子学编程][读书笔记]-道法自然之需求分析
  9. mac high sierra开机按option怎么只有一个磁盘_mac下载工具----SiteSucker
  10. 进步的奥秘:自下而上的演变 //转载