在定義變量時,可以將值相同的變量采用連續賦值的方式,如下代碼:
var a = b = c = '';
其實這里面有一個很大很大的坑,以代碼說明問題:
<script language="javascript"> function test(){ var i = 0; _test(); function _test(){ if(++i>2) return; var a = b = ''; // 這里連續賦值 for(var j=0; j<=2; j++){ b = 'a' + b; _test(); } console.log('b:'+b); } } test(); </script>
上例中返回的結果為:
b:aaa
b:aaaaa
與我想像中的結果不一致,我想要的結果是:
b:aaa
b:aaa
所以,去掉連續賦值,改成逐個賦值,結果就正確了,代碼如下:
<script language="javascript"> function test(){ var i = 0; _test(); function _test(){ if(++i>2) return; var a ='', b = ''; // 這里逐個賦值 for(var j=0; j<=2; j++){ b = 'a' + b; _test(); } console.log('b:'+b); } } test(); </script>
說重點:建議不要連續賦值!