在 Javascript 中,做用域分爲 全局做用域 和 函數做用域函數
代碼在程序的任何地方都能被訪問,window 對象的內置屬性都擁有全局做用域。spa
在固定的代碼片斷才能被訪問code
例子:對象
做用域有上下級關係,上下級關係的肯定就看函數是在哪一個做用域下建立的。如上,fn做用域下建立了bar函數,那麼「fn做用域」就是「bar做用域」的上級。blog
做用域最大的用處就是隔離變量,不一樣做用域下同名變量不會有衝突。ip
變量取值:到建立 這個變量 的函數的做用域中取值作用域
通常狀況下,變量取值到 建立 這個變量 的函數的做用域中取值。it
可是若是在當前做用域中沒有查到值,就會向上級做用域去查,直到查到全局做用域,這麼一個查找過程造成的鏈條就叫作做用域鏈。io
var x = 10; function fn(){ console.log(x); } function show(f){ var x = 20; (function(){ f(); // 10 })() } show(fn);