valueof()_函数value的用法

valueof()_函数value的用法valueOf函数详解 在类型转换中,经常用到方法valueOf()和他toString(),所有对象(包括基本包装类型)都拥有这两个方法。这篇文章我们先看看valueOf()方法。valueOf()方法会将对象转换为基本类型,如果无法转换为基本类型,则返回原对象。 【1】基本包装类型——Boole

 

在类型转换中,经常用到方法valueOf()和他toString(),所有对象(包括基本包装类型)都拥有这两个方法。这篇文章我们先看看valueOf()方法。valueOf()方法会将对象转换为基本类型,如果无法转换为基本类型,则返回原对象。

【1】基本包装类型——Boolean型

复制代码
   var obj = new Boolean(true);
   console.log(obj.valueOf());//true
   console.log(typeof obj.valueOf());//boolean
   //如果是包装类型的基本类型,则返回原基本类型值
    var a = true;
   console.log(a.valueOf());//true
   console.log(typeof a.valueOf());//boolean
复制代码

如果是基本包装类型对应的基本类型,会返回原值。但这并不代表基本类型拥有valueOf()方法(基本类型不是对象,不拥有任何方法),而是在读取一个基本类型值时,后台会创建一个对应的基本包装类型的对象,从而调用一些方法。所以,基本类型“调用”valueOf()方法时,实际上是先创建了一个对应的基本包装类型,由此基本包装类型调用valueOf(),最后返回了其对应的基本类型,看起来就好像是基本类型调用了valueOf()方法而得到了原始值。

 【2】基本包装类型——String型

复制代码
   var obj = new String("hello");
   console.log(obj.valueOf());//hello
   console.log(typeof obj.valueOf());//string
   //如果是包装类型的基本类型,则返回原基本类型值
    var a = "hello";
   console.log(a.valueOf());//hello
   console.log(typeof a.valueOf());//string
复制代码

同【1】,String基本包装类型和基本类型调用valueOf()方法都返回对应的基本类型

【3】基本包装类型——Number型

复制代码
   var obj = new Number("123");
   console.log(obj.valueOf());//123
   console.log(typeof obj.valueOf());//number
   //如果是包装类型的基本类型,则返回原基本类型值
    var a = 123;
   console.log(a.valueOf());//123
   console.log(typeof a.valueOf());//number
复制代码

同【1】,Number基本包装类型和基本类型调用valueOf()方法都返回对应的基本类型。

注意,如果直接用整数调用时,要加上括号,否则会报错。因为整数后面的点会识别为小数点。浮点型不会报错。

   console.log(123.valueOf());//Uncaught SyntaxError
   console.log((123).valueOf());//123
   console.log(12.3.valueOf());//12.3

 【4】数组Array类型(返回原数组)

   var a = [1];
   console.log(a.valueOf());//[1]
   console.log(a === a.valueOf());//true

 【5】函数Function类型(返回原函数)

   var a = function(){};
   console.log(a.valueOf());//function(){};
   console.log(a === a.valueOf());//true

   var a = /a/g;
   console.log(a.valueOf());///a/g
   console.log(a === a.valueOf());//true

 【7】对象Object类型

   var obj = {a:1};
   console.log(obj.valueOf());//Object{a:1}
   console.log(obj === obj.valueOf());//true

 【8】Date类型(返回表示当前时间的数值)

   var obj = new Date();
   console.log(obj);//Wed May 10 2017 12:19:05 GMT+0800 (中国标准时间)
   console.log(obj.valueOf());//1494389910179
   console.log(obj === obj.valueOf());//false
   console.log(obj.getTime() === obj.valueOf());//true

小结

1)undefined和null没有此方法(基本类型肯定没有方法,String、Number和Boolean是因为有对应的基本包装类型,才可以调用方法);

2)基本包装类型和对应的基本类型,调用valueOf()返回对应的基本类型值;

3)对象类型(除Date类型)返回原对象;

4)Date类型返回表示日期的毫秒数

今天的文章valueof()_函数value的用法分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/48349.html

(0)
编程小号编程小号
上一篇 2023-09-04
下一篇 2023-09-04

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注