JS 自由變數 JS 學習筆記(三) 補充

2022-05-10 12:46:45 字數 524 閱讀 7431

自由變數:在 a 中作用域要用到的變數  x,並沒有在 a 中宣告,要到別的作用域中找到他,這個變數 x 就是自由變數。**示例如下:

var x = 20;

function

a (b)

a(10); // 30

呼叫 a(10),要用到 x 的值,但是 x 值去**找呢?《js高階程式設計》中,說要到父執行環境中找。這句話要這樣理解,所謂的父執行環境,指的是建立函式時候的父執行環境,而不是呼叫時候的父執行環境。請看下面的**就很好的說明了這個問題:

var x = 10;

function

fn()

function

show(f) )();

}show(fn); // 10

在呼叫 show(fn)時,裡面有乙個立即執行匿名函式,執行了 fn()。那麼 fn()裡面有乙個自由變數 x。x 取呼叫時父作用域的值,結果就是20;x 取建立函式時候的父作用域的值,結果就是 10。

高階js 變數提公升以及自由變數

q首先一道題 if false console.log a undefined 我以為輸出referenceerror aa is not defined 但是實際輸出undefined 因為js沒有塊級作用域,所以最後 就成了這樣 vara if false console.log a 1 let...

js學習之原型 補充)

建立乙個建構函式 function myclss 新增乙個name屬性 myclass.prototype.name 原型 var mc new myclass console.log mc.name 原型 使用in檢查物件中是否含有某個屬性,如果物件沒有,但原型中有的話,也會返回true cons...

JS學習日記 變數

變數的資料型別取決於變數的宣告。例如 int a 3 a是個整數型別,由於int a a true 這個表示式不允許,因為a是乙個整數型別,不能賦值為布林型別 變數的資料型別取決於值的類。例如 var a 3 a是個數字型別,由於a 3 a true a變成類布林型別 var a a ture 加減...