js词法作用域规则
function foo() {
console.log( a ); // 2不是3
}
function bar() {
var a = 3;
foo();
}
var a = 2;
bar();
js中的作用域就是詞法作用域?
詞法作用域是一套關于引擎如何尋找變量以及會在何處找到變量的規
則。 詞法作用域最重要的特征是它的定義過程發生在代碼的書寫階段( 假設你沒有使用
eval() 或 with)
而動態作用域并不關心函數和作用域是如何聲明以及在何處聲明的, 只關心它們從何處調
用。 換句話說, 作用域鏈是基于調用棧的, 而不是代碼中的作用域嵌套.
所以js的作用域是詞法作用域即從函數書寫時的位置尋找.
=====================================================================
主要區別: 詞法作用域是在寫代碼或者說定義時確定的, 而動態作用域是在運行時確定
的。( this 也是! ) 詞法作用域關注函數在何處聲明, 而動態作用域關注函數從何處調用
轉載于:https://www.cnblogs.com/a-flydog/p/5527168.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: 100首超短古诗原文
- 下一篇: 春夏秋冬的古诗各10首经典