javascript
  • variable-assignment
  • 2011-06-28 46 views 2 likes 
    2

    我相信我在做一些愚蠢的位置:無效分配左側,JavaScript的

    var addhtml = '<div id="leftbio" class="left-float">' 
    += '<div id="bioname">e["screen_name]</div>' 
    += '<div id="biophoto"><img src="e["profile_image_url"]"/></div>' 
    += '<div id="biodetails">e["description"]</div>' 
    += '</div>';    // invalid assignment left-hand side 
    console.log(addhtml); 
    

    和NetBeans告訴我,invalid assignment left-hand side錯誤。

    怎麼了?

    +4

    + =在那裏做什麼? a +是你想要的 –

    回答

    13

    你不需要+=來連接,你只需要+

    這是確定

    var addhtml = '<div id="leftbio" class="left-float">' 
    + '<div id="bioname">e["screen_name]</div>' 
    + '<div id="biophoto"><img src="e["profile_image_url"]"/></div>' 
    +'<div id="biodetails">e["description"]</div>' 
    + '</div>';   
    console.log(addhtml); 
    
    +2

    YESSSS ..那就是我的意思..簡單的字符串連接.. * smack_self * ..:)謝謝:) –

    +1

    謝謝,這給了我一個線索我正面臨類似的錯誤。我正在嘗試'$(this).data('var')= true'而不是'$(this).data('var',true);' – andrewtweber

    9

    +=的意思是「取左邊的東西,加上它,並將結果存儲在左邊的東西」。 +=的左側是文字(第一個是'<div id="leftbio" class="left-float">)。你不能分配到文字。

    換句話說,a += b基本上是指a = a + b。你可以看到如果a是一個文字而不是一個變量,那怎麼辦?

    你只是想+有:

    var addhtml = '<div id="leftbio" class="left-float">' 
    + '<div id="bioname">e["screen_name]</div>' 
    + '<div id="biophoto"><img src="e["profile_image_url"]"/></div>' 
    + '<div id="biodetails">e["description"]</div>' 
    + '</div>'; 
    console.log(addhtml); 
    

    給你++=之間的差別的一個想法:

    var a, b; 
    a = "foo"; 
    b = a + "bar"; // Doesn't modify `a` 
    console.log(a); // "foo" 
    console.log(b); // "foobar" 
    

    var a, b; 
    a = "foo"; 
    b = a += "bar"; // Modifies `a` (assigning the result to `b` is unusual -- very -- but valid) 
    console.log(a); // "foobar" - note it's changed 
    console.log(b); // "foobar" 
    

    題外話

    我也建議縮進賦值語句的後續行,但是這只是風格:

    var addhtml = '<div id="leftbio" class="left-float">' 
        + '<div id="bioname">e["screen_name]</div>' 
        + '<div id="biophoto"><img src="e["profile_image_url"]"/></div>' 
        + '<div id="biodetails">e["description"]</div>' 
        + '</div>'; 
    console.log(addhtml); 
    
    0

    不需要=

    var addhtml = '<div id="leftbio" class="left-float">' 
        + '<div id="bioname">e["screen_name]</div>' 
        + '<div id="biophoto"><img src="e["profile_image_url"]"/></div>' 
        + '<div id="biodetails">e["description"]</div>' 
        + '</div>';    // invalid assignment left-hand side 
        console.log(addhtml); 
    
    0

    您不能連鎖歸屬運營商,如+=

    var addhtml = '<div id="leftbio" class="left-float">' 
           + '<div id="bioname">e["screen_name]</div>' 
           + '<div id="biophoto"><img src="e["profile_image_url"]"/></div>' 
           + '<div id="biodetails">e["description"]</div>' 
           + '</div>';    // invalid assignment left-hand side 
    console.log(addhtml); 
    
    1

    x += yx = x + y速記這是你想要在這裏不是什麼。

    要麼使用:

    var addhtml = '<div id="leftbio" class="left-float">'; 
    addhtml += '<div id="bioname">e["screen_name]</div>'; 
    addhtml += '<div id="biophoto"><img src="e["profile_image_url"]"/></div>'; 
    addhtml += '<div id="biodetails">e["description"]</div>'; 
    addhtml += '</div>'; 
    

    或:

    var addhtml = '<div id="leftbio" class="left-float">' 
        + '<div id="bioname">e["screen_name]</div>' 
        + '<div id="biophoto"><img src="e["profile_image_url"]"/></div>' 
        + '<div id="biodetails">e["description"]</div>' 
        + '</div>'; 
    
    2

    賦值(=)是沒有必要的,你可以只使用+。還有其他兩種方法來構建多行字符串:

    // method 1: use continuation \ 
    var addhtml = '\ 
         <div id="leftbio" class="left-float"> \ 
          <div id="bioname">e["screen_name]</div> \ 
          <div id="biophoto"><img src="e["profile_image_url"]"/></div> \ 
          <div id="biodetails">e["description"]</div> \ 
         </div>'; 
    
    //method 2: use an array and join the elements 
    var addhtml = [ 
         '<div id="leftbio" class="left-float">', 
         ' <div id="bioname">e["screen_name]</div>', 
         ' <div id="biophoto"><img src="e["profile_image_url"]"/></div>', 
         ' <div id="biodetails">e["description"]</div>', 
         '</div>' 
        ].join(''); 
    
    相關問題