JS valueOf与字符串

发布于 2016-05-13  436 次阅读


js在处理字符串和数值加运算的时候会转换数值为字符串 然后执行字符串连接

在覆盖String.prototype.valueOf之前,new String(111)这样的字符串与数值加法也是字符串连接:

> var s = new String(11);
undefined
> s+11
'1111'

 

重写String.prototype.valueOf之后 用new String("xxx")构造的字符串对象会转换成数值与数值进行加法运算 而字符串常量仍旧是字符串连接

如下:

> String.prototype = function(){
... return 11; ... } [Function] > str = "22"; '22' > var str2 = new String("22"); undefined > var str3 = new String(22); undefined > 11+str '1122' > 11+str2 22 > 11+str3 22 >

 



点击数:113


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。