我刚刚在gist上发布了这个:https://gist.github.com/2228570
var out = '';
function doWhat(){
out += '<li>';
console.log(out === '<li>'); // at this point, out will equal '<li>'
return '';
}
out += doWhat();
console.log(out, out === '<li>');
// I expect out to == '<li>', but it's actually an empty string!?
这种行为很奇怪,有人能解释一下吗?在谷歌上很难找到答案。使用
out +=
或out = out +
都没有区别。编辑:@paislee创建了一个JSFiddle演示,如果将doWhat放在单独的一行,它会按预期行事:http://jsfiddle.net/paislee/Y4WE8/