>  Q&A  >  본문

javascript - js中的object对象toString和valueOf的区别?

本人觉得存在一个就够了,其理念都是转换成字符串。期待大家不同的见解。

迷茫迷茫2749일 전609

모든 응답(4)나는 대답할 것이다

  • 高洛峰

    高洛峰2017-04-10 14:35:03

    吐血ing...强烈推荐题主有事没事去查手册!传送门

    toString()是转化成字符串应该没什么歧义,其他很多语言也都有这么一个函数,比如Java,C#

    Reference to Object.prototype.valueOf

    JavaScript calls the valueOf method to convert an object to a primitive value. You rarely need to invoke the valueOf method yourself; JavaScript automatically invokes it when encountering an object where a primitive value is expected.

    我想纠正一下题主的想法:
    1. toString()和valueOf()完全是做两件事的函数
    2. valueOf()之所以很少用到,如上面所说的,因为js会在需要的时候会自动调用这个函数。
    3. 如果你可能需要用到valueOf(),它的作用是返回一个对象的原始值,比如:

    var str = new String('hello,world');
    console.log(typeof str); //'object'
    console.log(typeof str.valueOf()); //'string'
    

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-10 14:35:03

    valueOf 优先级高于 toString http://stackoverflow.com/questions/2485632/valueof-vs-tostring-in-javascript

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-10 14:35:03

    建议去熟读犀牛大典

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-10 14:35:03

    这个valueOf和java的那个不是一回事,java的那个的确相同,可是js里面不是这么用的。他的作用是把包装器对象拆成基元类型。

    num = new Number(123);
    //Number {123}
    num.valueOf();
    //123
    

    회신하다
    0
  • 취소회신하다