浅谈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 相关文章推荐
动态加载js文件 document.createElement
Oct 14 Javascript
无语,javascript居然支持中文(unicode)编程!
Apr 12 Javascript
jQuery判断checkbox是否选中的小例子
Dec 02 Javascript
jquery实现类似淘宝星星评分功能有截图
Sep 15 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
Dec 19 Javascript
15个常用的jquery代码片段
Dec 19 Javascript
canvas简单快速的实现知乎登录页背景效果
May 08 Javascript
bootstrap精简教程_动力节点Java学院整理
Jul 14 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
Dec 08 Javascript
JS中精巧的自动柯里化实现方法
Dec 12 Javascript
微信小程序实现折叠展开效果
Jul 19 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
May 24 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模板页面中分页代码的解析
2009/02/06 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
php use和include区别总结
2019/10/13 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
IE6图片加载的一个BUG解决方法
2010/07/13 Javascript
禁止ajax缓存获取程序最新数据的方法
2013/11/19 Javascript
php的文件上传入门教程(实例讲解)
2014/04/10 Javascript
javascript正则表达式之search()用法实例
2015/01/19 Javascript
JS基于cookie实现来宾统计记录访客信息的方法
2015/08/04 Javascript
jQuery进行组件开发完整实例
2015/12/15 Javascript
详解js中call与apply关键字的作用
2016/11/21 Javascript
Vue.js 递归组件实现树形菜单(实例分享)
2016/12/21 Javascript
vue.js移动端app实战1:初始配置详解
2017/07/24 Javascript
jQuery中.attr()和.data()的区别分析
2017/09/03 jQuery
NodeJs实现简易WEB上传下载服务器
2019/08/10 NodeJs
vue穿梭框实现上下移动
2021/01/29 Vue.js
python远程登录代码
2008/04/29 Python
在Python web中实现验证码图片代码分享
2017/11/09 Python
Python实现识别手写数字 Python图片读入与处理
2020/03/23 Python
更换Django默认的模板引擎为jinja2的实现方法
2018/05/28 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
Python匿名函数及应用示例
2019/04/09 Python
python查找重复图片并删除(图片去重)
2019/07/16 Python
没编程基础可以学python吗
2020/06/17 Python
pycharm全局搜索的具体步骤
2020/07/28 Python
Django xadmin安装及使用详解
2020/10/26 Python
Python request post上传文件常见要点
2020/11/20 Python
英国知名美妆护肤在线商城:Zest Beauty
2018/04/24 全球购物
成人高等教育毕业生自我鉴定
2013/10/22 职场文书
大学本科毕业生的自我鉴定范文
2013/11/19 职场文书
自我评价格式
2014/01/06 职场文书
八一演出活动方案
2014/02/03 职场文书
2014年售票员工作总结
2014/11/19 职场文书
绵山导游词
2015/02/05 职场文书
2015年第31个教师节致辞
2015/07/31 职场文书
python Tkinter的简单入门教程
2021/04/11 Python