變量作用域與解構賦值


變量作用域 

由於JavaScript的函數可以嵌套,此時,內部函數可以訪問外部函數定義的變量,如果內部函數定義的變量和外部函數定義的變量相同,則內部函數的變量將“屏蔽”外部函數的變量

變量提升 

function foo() {
    var x = 'Hello, ' + y;
    console.log(x);
    var y = 'siry';
}
foo();
語句var x = 'Hello, ' + y;並不報錯,原因是變量y在稍后申明了,javascript引擎會自動提升y,提升變量y的申明,此時y為undefined

名字空間

全局變量會綁定到window上,不同的JavaScript文件如果使用了相同的全局變量,或者定義了相同名字的頂層函數,都會造成命名沖突,並且很難被發現。
減少沖突的一個方法是把自己的所有變量和函數全部綁定到一個全局變量中。

局部作用域

JavaScript的變量作用域實際上是函數內部,我們在for循環等語句塊中是無法定義具有局部作用域,當我們為了解決塊級作用域,ES6引入了新的關鍵字let,用let替代var可以申明一個塊級作用域的變量,如果我們定義常量引入const關鍵字代替

解構賦值

數組解構賦值

[a,b]=[1,2];
方法返回
function f(){
   return [1,2]
}
let a,b;
[a,b]=f();//a=1,b=2

function f1(){
   return [1,2,3,4,5]
}
let a,b;
[a,b]=f();//a=1,b=2

[a,,...b]=f1();//a=1;b=[2,3,4,5]

對象解構賦值 

{a,b=1}={a:1,b:2}

數組解構賦值運用場景 

變量交互、返回數組、對返回的數組結果只關心第一個,返回多個值,選擇性的接受某幾個變量


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com