Может ли кто-нибудь объяснить это странное поведение JS в отношении конкатенации строк?

Я только что отправил это в суть: https://gist.github.com/2228570

var out = '';

function doWhat(){
    out += '
  • '; console.log(out === '
  • '); // at this point, out will equal '
  • ' return ''; } out += doWhat(); console.log(out, out === '
  • '); // I expect out to == '
  • ', but it's actually an empty string!?
  • Это странное поведение, у кого-нибудь есть объяснение? Это сложная вещь для Google. Также не имеет значения, используете ли вы out +=или out = out +.

    РЕДАКТИРОВАТЬ: @paislee сделал JSFiddle, который демонстрирует, как, если doWhat находится в отдельной строке, он ведет себя так, как ожидалось: http://jsfiddle.net/paislee/Y4WE8/

    10
    задан Andrew 28 March 2012 в 18:14
    поделиться