浅谈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刷新框架子页面的七种方法代码
Nov 20 Javascript
JavaScript四种调用模式和this示例介绍
Jan 02 Javascript
jQuery中document与window以及load与ready 区别详解
Dec 29 Javascript
JS产生随机数的用法小结
Dec 10 Javascript
微信小程序 Toast自定义实例详解
Jan 20 Javascript
微信小程序动态生成二维码的实现代码
Jul 25 Javascript
vue动态删除从数据库倒入列表的某一条方法
Sep 29 Javascript
解决vue 单文件组件中样式加载问题
Apr 24 Javascript
JavaScript的垃圾回收机制与内存管理
Aug 06 Javascript
解决vuex刷新数据消失问题
Nov 12 Javascript
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
微信小程序自定义胶囊样式
Dec 27 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
现磨咖啡骗局!现磨咖啡=新鲜咖啡?现磨咖啡背后的猫腻你不懂!
2019/03/28 冲泡冲煮
php递归列出所有文件和目录的代码
2008/09/10 PHP
PHP iconv 解决utf-8和gb2312编码转换问题
2010/04/12 PHP
PHP限制HTML内容中图片必须是本站的方法
2015/06/16 PHP
谈谈你对Zend SAPIs(Zend SAPI Internals)的理解
2015/11/10 PHP
分享五个PHP7性能优化提升技巧
2015/12/07 PHP
WordPress主题制作之模板文件的引入方法
2015/12/28 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
PHP 二维array转换json的实例讲解
2018/08/21 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
JS backgroundImage控制
2009/05/19 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
javascript操作excel生成报表示例
2014/05/08 Javascript
arguments对象验证函数的参数是否合法
2015/06/26 Javascript
JavaScript变量的作用域全解析
2015/08/14 Javascript
js如何准确获取当前页面url网址信息
2020/09/13 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
详解XMLHttpRequest(一)同步请求和异步请求
2016/09/14 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
2017/04/10 jQuery
详解JS中的柯里化(currying)
2017/08/17 Javascript
使用js获取伪元素的content实例
2017/10/24 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
2019/04/17 Javascript
Flutter部件内部状态管理小结之实现Vue的v-model功能
2019/06/11 Javascript
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
Python中的map、reduce和filter浅析
2014/04/26 Python
Python 中pandas.read_excel详细介绍
2017/06/23 Python
python学习入门细节知识点
2018/03/29 Python
python try 异常处理(史上最全)
2019/03/07 Python
创建Django项目图文实例详解
2019/06/06 Python
python用requests实现http请求代码实例
2019/10/31 Python
英国著名的化妆品折扣网站:Allbeauty.com
2016/07/21 全球购物
迪奥美国官网:Dior美国
2019/12/07 全球购物
Tea Collection官网:一家位于旧金山的童装公司
2020/08/07 全球购物
班级安全教育实施方案
2014/02/23 职场文书
html中两种获取标签内的值的方法
2022/06/10 HTML / CSS