JS变量定义时连续赋值的坑!
Posted 小程序开发
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS变量定义时连续赋值的坑!相关的知识,希望对你有一定的参考价值。
在定义变量时,可以将值相同的变量采用连续赋值的方式,如下代码:
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>
<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>
说重点:建议不要连续赋值!
以上是关于JS变量定义时连续赋值的坑!的主要内容,如果未能解决你的问题,请参考以下文章