“+” 为啥是TXT1+txt2的值 比如TXT1=1 txt2=2 结果是12
说明这里的 + 号 是字符串连接。
+ 号的3种作用:
1、第一种就是数学中的加法
var a = 1; var b = 2; var c = a + b; // 此时 c = 3
2、字符串链接
var str = 'abc'; var str2 = 'def'; var str3 = str + str2; // 此时str3 = 'abcdef' var txt = '1' + '2' // txt = '12'
3、转型,即把其它类型转为数值(或字符串)
var time = +new Date(); // 调用time对象的 valueOf 方法,返回时间戳 // 此时obj 并不是一个对象,而是一个数值,值是 999 var obj = +{ valueOf:function(){ return 999; } } // 会调用对象的toString方法,然后执行字符串连接 obj2 = 'i am a object' var obj2 = '' +{ toString:function(){ return 'i am a object' } } // 如果一个对象即含有toString方法,又含有valueOf方法,那么调用那个呢? // 答案是 + 会首先调用valueOf,toString只是个备胎。。两者都存在,你说调用哪一个?你试试就知道啦 var obj3 = { toString:function(){ return 'i am a object' },valueOf:function(){ return 999 } }+''
总结:+ 号引起的操作或转型是javaScript中的所有的转型中的一种情况。我昨天晚上写了一篇涵盖几乎所有转型的情况的文章,现在慕课网正在审核。估计审核通过,马上就能在文章列表中看到了。请关注。。文章名字《JavaScript转型面面观》