iT邦幫忙

2

[JavaScript]02-JavaScript作用域

  • 分享至 

  • xImage
  •  

作用域

doSomething=()=>{
    //函式作用域,變數只存在這裡面
    var mood='happy';
    console.log(mood);
}
doSomething();
//會輸出happy
console.log(mood);
//報錯mood is not defined

語法作用域(Lexical scope)

靜態作用域-在直譯器進行語法解析時便已決定作用域,且不會改變,javaScript屬之
動態作用域-作用域在函式調用時才決定
scope

階層式作用域

  1. 當內層作用域找不到指定的變數時會向外找尋,皆找不到時會報錯ReferenceError
    casecade
var value=1;
fn1=()=>{
    conole.log(value)
}
fn2=()=>{
    var value=2;
    fn1();
}
fn2();
//輸出結果為 1

若為動態作用域,當變數值在現作用域找不到值時,會往方法呼叫源尋找,而不是向外找尋,如上例若為動態作用域,fn1作用域內找不到value變數的值,會向呼叫fn1的fn2作用域查找,輸出值為2

上一篇:1-JavaScript運作原理


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言