浅谈String.valueOf()方法的使用


Posted in Javascript onJune 06, 2016

前面的话

关于类型转换,对象常见的两个方法是toString()和valueOf()。实际上,这两个方法也可以应用在包装类型上。前面已经介绍过toString()方法,本文将介绍valueOf()方法,该方法返回原值

【1】undefined和null没有valueOf()方法

undefined.valueOf();//错误
null.valueOf();//错误

【2】布尔型数据true和false返回原值

true.valueOf();//true
typeof true.valueOf();//'boolean'
false.valueOf();//false
typeof false.valueOf();//'boolean'
Boolean.valueOf();//Boolean() { [native code] }
typeof Boolean.valueOf();//'function'

【3】字符串类型原值返回

'1'.valueOf();//'1'
''.valueOf();//''
'abc'.valueOf();//'abc'
String.valueOf();//String() { [native code] }
typeof String.valueOf();//'function'

【4】数值类型分为整数和浮点数进行处理

Number.valueOf();//Number() { [native code] }
typeof Number.valueOf();//'function'

1、整数直接跟上.valueOf()形式,会报错,提示无效标记,所以尽量加括号

0.valueOf();//Uncaught SyntaxError: Invalid or unexpected token
(0).valueOf();//0
+0.valueOf();//Uncaught SyntaxError: Invalid or unexpected token
(+0).valueOf();//0
-0.valueOf();//Uncaught SyntaxError: Invalid or unexpected token
(-0).valueOf();//-0

[注意]-0的valueOf()值是-0,而-0的toString()值是'0'

2、浮点数原值返回

1.23.valueOf();//1.23
+1.23.valueOf();//1.23
-1.23.valueOf();//-1.23
NaN.valueOf();//NaN
Infinity.valueOf();//Infinity
-Infinity.valueOf();//-Infinity

[注意]和toString()不同的是,valueOf()不可以接收转换基数

【5】对象Object类型及自定义对象类型返回原对象

{}.valueOf();//报错,Unexpected token .
({}).valueOf();//Object{}
typeof ({}).valueOf();//'object'
({a:123}).valueOf();//Object{a:123}
Object.valueOf();//Object() { [native code] }
typeof Object.valueOf();//'function'
function Person(){
  this.name = 'test';
}
var person1 = new Person();
person1.valueOf();//Person {name: "test"}

【6】函数Function类型返回原函数

function test(){
  alert(1);//test
}
test.valueOf();/*function test(){
          alert(1);//test
         }*/
Function.valueOf();//Function() { [native code] }

【7】数组Array类型返回原数组

[].valueOf();//[]
[1].valueOf();//[1]
[1,2,3,4].valueOf();//[1,2,3,4]
Array.valueOf();//Array() { [native code] }

【8】和其他对象不同,时间Date类型返回一个数字值,它是this时间值

Date.now();//1465115123742
(new Date()).valueOf();//1465115123742
typeof (new Date()).valueOf();//'number'
Date.valueOf();//Date() { [native code] }

【9】正则表达式RegExp类型返回原正则对象

/ab/i.valueOf();///ab/i
/mom( and dad( and baby)?)?/gi.valueOf();//mom( and dad( and baby)?)?/gi
RegExp.valueOf();//RegExp() { [native code] }

【10】错误Error类型

Error.valueOf();//Error() { [native code] }
RangeError.valueOf();//RangeError() { [native code] }
ReferenceError.valueOf();//ReferenceError() { [native code] }
SyntaxError.valueOf();//SyntaxError() { [native code] }
TypeError.valueOf();//TypeError() { [native code] }
URIError.valueOf();//URIError() { [native code] }

总 结  

1、toString()和valueOf()的主要不同点在于,toString()返回的是字符串,而valueOf()返回的是原对象

2、由于undefined和null不是对象,所以它们toString()和valueOf()两个方法都没有

3、数值Number类型的toString()方法可以接收转换基数,返回不同进制的字符串形式的数值;而valueOf()方法无法接受转换基数

4、时间Date类型的toString()方法返回的表示时间的字符串表示;而valueOf()方法返回的是现在到1970年1月1日00:00:00的数值类型的毫秒数

以上这篇浅谈String.valueOf()方法的使用就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
代码生成器 document.write()
Apr 15 Javascript
CLASS_CONFUSION JS混淆 全源码
Dec 12 Javascript
jQuery Div中加载其他页面的实现代码
Feb 27 Javascript
jquery禁用右键单击功能屏蔽F5刷新
Mar 17 Javascript
jquery插件splitScren实现页面分屏切换模板特效
Jun 16 Javascript
JS模拟实现方法重载示例
Aug 03 Javascript
JavaScript实现公历转农历功能示例
Feb 13 Javascript
JS实现监控微信小程序的原理
Jun 15 Javascript
vue+Element-ui实现分页效果实例代码详解
Dec 10 Javascript
Node.js实现一个HTTP服务器的方法示例
May 13 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
Sep 13 Javascript
js将URL网址转为16进制加密与解密函数
Mar 04 Javascript
深入理解JavaScript单体内置对象
Jun 06 #Javascript
基于JS实现省市联动效果代码分享
Jun 06 #Javascript
对象转换为原始值的实现方法
Jun 06 #Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
Jun 06 #Javascript
node-http-proxy修改响应结果实例代码
Jun 06 #Javascript
浅谈bootstrap源码分析之tab(选项卡)
Jun 06 #Javascript
浅谈bootstrap源码分析之scrollspy(滚动侦听)
Jun 06 #Javascript
You might like
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
[原创]smarty简单模板变量输出方法
2016/07/09 PHP
thinkPHP2.1自定义标签库的导入方法详解
2016/07/20 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
使用jQuery的将桌面应用程序引入浏览器
2010/11/19 Javascript
基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式
2015/10/28 Javascript
在web中js实现类似excel的表格控件
2016/09/01 Javascript
JS求解三元一次方程组值的方法
2017/01/03 Javascript
JS实现页面打印功能
2017/03/16 Javascript
bootstrap 设置checkbox部分选中效果
2017/04/20 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
小程序ios音频播放没声音问题的解决
2018/07/11 Javascript
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
Flask框架web开发之零基础入门
2018/12/10 Python
Python查找文件中包含中文的行方法
2018/12/19 Python
对python numpy.array插入一行或一列的方法详解
2019/01/29 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
2020/06/18 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
python redis存入字典序列化存储教程
2020/07/16 Python
CSS3 简单又实用的5个属性
2010/03/04 HTML / CSS
纯CSS3打造动感漂亮时尚的扇形菜单
2014/03/18 HTML / CSS
美国顶级防滑鞋:Shoes For Crews
2017/03/27 全球购物
CK巴西官方网站:Calvin Klein巴西
2019/07/19 全球购物
莫斯科珠宝厂官方网站:Miuz
2020/09/19 全球购物
介绍一下except的用法和作用
2015/01/22 面试题
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
大专生工程监理求职信
2013/10/04 职场文书
会计专业毕业生求职信分享
2014/01/03 职场文书
妇女儿童发展规划实施方案
2014/03/16 职场文书
干部鉴定材料
2014/05/18 职场文书
个人剖析材料及整改措施
2014/10/07 职场文书
业务内勤岗位职责
2015/04/13 职场文书
汽车销售合同文本
2019/08/08 职场文书
React如何创建组件
2021/06/27 Javascript
muduo TcpServer模块源码分析
2022/04/26 Redis