javascript中valueOf()和toString()區別



valueOf():返回最適合該對象類型的原始值;
toString(): 將該對象的原始值以字符串形式返回。

這兩個方法一般是交由JS去隱式調用,以滿足不同的運算情況。
在數值運算裏,會優先調用valueOf(),如a + b;
在字符串運算裏,會優先調用toString(),如alert(c)。


代碼示例:
var abc={i:10;
                 valueOf:function(){return this.i+20};
                 toString:function(){return this.valueOf()+10};
              }
alert(abc>40);//false
alert(''+abc);alert(+abc);//30,30,數值運算優先調用valueOf
alert(abc);//50,字符串運算,優先調用toString
alert('+'+abc);//+30,運算符優先
alert(Number(abc));//30,數字優於字符串
alert(String(abc));//40




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章