这计算器加这里有点问题 不明白

来源:6-11 编程练习

行者无止尽

2015-11-27 11:32

“+” 为啥是TXT1+txt2的值  比如TXT1=1 txt2=2 结果是12

写回答 关注

1回答

  • 慕男婶
    2015-11-27 11:37:54

    说明这里的 + 号 是字符串连接。

    + 号的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转型面面观》


JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468060 学习 · 21891 问题

查看课程

相似问题