javascript 之 valueOf

var m = { 
    i:10, 
    toString:function () { 
        console.log('toString'); 
        return this.i; 
    }, 
    valueOf:function () { 
        console.log('valueOf'); 
        return this.i; 
    } 
}; 
console.log(m);// toString 
console.log(String(m)); // toString 
console.log(+m); //  valueOf 
console.log('' + m); // valueOf 
console.log(Number(m)); // valueOf 
console.log(m == '10'); //  valueOf 

console.log(m === '10'); // false //=== 不进行转换

在有操作符的情况 下,valueOf的优先级本来就比toString的高。valueOf解决值运算问题,toString解决显示问题。

原文地址:https://www.cnblogs.com/yuyutianxia/p/3530324.html