toString与valueOf区别
对应视频分享:点击进入
基本上,javascript中所有数据类型都拥有valueOf和toString这两个方法,null和undefined除外。它们俩解决javascript值运算与显示的问题,本文将详细介绍,有需要的朋友可以参考下。
为什么基本数据类型也有方法:
有人说上面这都是基本操作,看这个干嘛,但是想一想,好像有点不对,这几个好像还有别的兄弟姐妹啊,如Undefined, Null,
Boolean, Number和String这几个,有谁去了解过这几个构造函数吗
接下来我们就要用到这个东西了,话说这几位,都是大英雄,这就是在每一个string的背后,都站着一位默默的String,其他也是一样的,实际上,这几位是一些特殊的引用类型,方便我们操作对应的基本类型。
这里涉及到了一个概念’‘基本包装类型’’ 我们来看一段简单的代码
var message = 'helloworld'
var mymessage = message .substring(0,6)
console.log(mymessage) // 'hellow'
在上面这三行代码执行中,发生了很多事。
过程就类似于下面的代码
var _message = new String(‘helloworld’) //通过String去创建一个实例对象
var mymessage = _message.substring(0,6)
//调用这个实例对象的方法,调用完毕之后销毁这个实例对象
console.log(mymessage ) // 'hellow'
在整个过程中,String这个构造函数一直没有出现在我们的视线中,它只是默默地去进行创建,被使用,然后销毁,哇哦,多么沉默的英雄啊。
那现在我们就明白了,基本数据类型调用的并不是它本身的方法,而是在执行这个方法的时候,去为它创建基本包装类型String,然后通过这个基本包装类型的值去创建一个实例对象,再调用这个实例对象的指定方法,最后再将这个实例对象销毁,嗯,基本包装类型也销毁。
toString()与valueOf()
0、object
备注:报错原因
因为实际上浏览器执行的可能是这样:
{}//空语句块
.toString()//另外一条错误的语句
如果要让 js 引擎认为 { 是一个对象字面量表达式的开始,一般就是加 (),这个时候,js 引擎就知道()里的是表达式,所以当做表达式来解析,所以
({}).toString()
就不会报错
1.array。
2.function
3.RegExp
4.Date
valueOf:除了date其他的都是返回数据本身
5.Boolean
6.number返回number字符串
原来 JavaScript采用 IEEE 754 的规范 双精度数字,JavaScript 中只有一种数字类型:基于 IEEE 754
标准的双精度 。它并没有为整数给出一种特定的类型,所以所有的数字都是小数。
123.toString() 等价于 123.0toString(),这样的语句当然行不通。 这也更合理解释了为什么123…toString()、123 .toString()、(123).toString()能够得到正确的返回值。
总结
valueOf偏向于运算,toString偏向于显示。
valueOf:除了date其他的都是返回数据本身
toString与valueOf区别相关推荐
- 彻底了解toString和valueOf区别
toSring和valueof 两者都是对象的方法!前者返回对象的字符串,后者返回对象的原始值,如果没有原始值则返回对象本身! 1.toSring() 直接看代码 console.log((1).to ...
- 26.JavaScript对象和基础类型之间的转换、hint、Symbol.toPrimitive、toString、valueOf
文章目录 对象-基础类型转换 写在前面 对象类型转换规则 对象类型转换的结果 Hint String Number Default 转换需要的三个对象方法 Symbol.toPrimitive() t ...
- 通过char[]获得字符串new String(chars) || chars.toString() || String.valueOf(chars)对比
今天刷Leecode49. 字母异位词分组,遇到一个通过char[]获得字符串的问题,记录一下new String(chars) || chars.toString() || String.value ...
- js中toString()和String()区别详解
转载自 js中toString()和String()区别详解 我们知道String()与 .toString()都是可以转换为字符串类型,但是String()与 .toString()的还是有区别的 ...
- java e.getmessage() null,浅谈Java异常的Exception e中的egetMessage()和toString()方法的区别...
Exception e中e的getMessage()和toString()方法的区别: 示例代码1: public class TestInfo { private static String str ...
- 一文看懂JS里隐式转换、toString() 和 valueOf()
js-看懂隐式转换toString 和 valueOf js隐式类型转换 数值类型和布尔类型的相加 字符串和数字相加 隐式类型转换隐藏一些错误 isNaN() 对象的隐式转换 强制类型转换 - &qu ...
- 各种对象上的 toString 方法的区别和关联
各种对象上的 toString 方法的区别和关联 问:请简述一下用于判断数据类型都有哪些方法? 答:巴拉巴拉--小魔仙 在判断数据类型的时候,有一种方式可以清晰直接地区分出所有的数据类型,即 Obje ...
- String.valueOf()方法与toString()方法的区别
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 两者都是把ObJect对象转化为String 类型. 2.string.valueof()方法 ...
- 搞懂toString()与valueOf()的区别
一.toString() 作用:toString()方法返回一个表示改对象的字符串,如果是对象会返回,toString() 返回 "[object type]",其中type是对象 ...
最新文章
- 多版本python共存,安装三方库到指定python版本 多Python版本和虚拟环境
- 【转】奴性哲学十句话,洗脑常用词!!!
- 成功解决ValueError: Shape of passed values is (1, 332), indices imply (1, 1)
- leetcode 650. 2 Keys Keyboard | 650. 只有两个键的键盘(暴力递归->傻缓存->DP)
- java 反射机制_基础篇:深入解析JAVA反射机制
- Tensorflow 迁移学习 识别中国军网、中国军视网Logo水印
- 7-63 情人节 (15 分)(c++stl)
- 【渝粤教育】国家开放大学2018年春季 0299-21T中国古代文学(1) 参考试题
- oracle日期时间
- 2021年中式面点师(中级)最新解析及中式面点师(中级)模拟考试题库
- python陆股通_【科普】沪股通、深股通、港股通、陆股通都是什么意思?
- 音质好的蓝牙耳机有哪些?盘点四款好音质蓝牙耳机
- SUS系统可用性量表
- 计算机图形学(一) 视频显示设备_7_光栅扫描系统
- TeamViewer的LAN局域网内连接
- 手机相册怎么拼图?快来和我学习新方法
- pdb和pdm文件有什么区别?
- 东北大学秦皇岛分校acm俱乐部第一次双周赛
- 使用window的cmd命令输出目录文件列表清单
- 过分依赖计算机的影响,技术的“两面性”过于依赖技术,会给生活带来什么影响?...