//先看一段代码 var a = 100; function test(){ alert(a); var a = 200; } test(); /* 结果:undifined 原因:js引擎在执行script代码块的时候,会先扫描一遍 把所有的变量先声明,所以当执行到alert的时候发现a已经 声明了,但是没有赋值 在编码过程中,为了提高效率,把变量在第一行全部声明,如下 */ function test1(){ var a,b,c; }
小编的上一篇文章更新了es6中关于变量定义的问题,这篇文章继续来一些实用的干货,关于数组.对象的赋值问题.特别是在前后端合作项目的时候,对后端数据的拆分,还有就是对于函数的默认值的惰性赋值问题.看完下面的,相信会忍不住对es6伸出大拇指.真是太方便了. 一.数组的结构赋值1.es5语法 1 let arr = [1,2,3] 2 let a = arr[0] 3 let b = arr[1] 4 let c = arr[2] 5 console.log(a,b,c) // 1 2 3 2.es6