工作中有時候會遇到函式中的引數不知道屬於哪個,有兩種情況下容易弄混
1.函式帶引數,傳入的引數的**判斷
2.函式不帶引數,函式體內的引數的**判斷(特別注意)
情況1:
如果函式帶引數,則在呼叫該函式時,就可以知道該引數是來自**,從呼叫時的執行上下文環境中判斷引數**,如下**
let x = 100;
let fn = function (x)
let fn1 = function()
fn1();
情況2:
如果函式未帶引數,則裡面未在傳入引數內的引數(不在括號中的),取的值在建立該函式的執行上下文環境決定(不隨呼叫環境改變)
let x = 100;
let fn = function (y)
let fn1 = function ()
fn1();
總結:
1.如果在函式傳入引數內的引數,則該引數以傳進來的引數為準,在呼叫該函式時的上下文執行環境判斷的引數**
2.如果不在函式傳入引數內的引數,則取的值在建立該函式的執行上下文環境決定(不隨呼叫環境改變)
JS變數作用域
先明確一點 討論作用域,討論的是非物件成員的變數。在函式以及自定義物件之外宣告的變數,具有全域性作用域 1.瀏覽器會建立乙個window物件,window的所有屬性,都具有全域性作用域 2.反過來,具有全域性作用域的變數,都是window的屬性 3.具有全域性作用域的變數,任何位置都可以訪問 通過上...
js 變數 作用域
一 基本型別與引用型別 針對引用型別值時,複製的只是乙個指標,複製操作結束後,兩個變數實際上將引用同乙個物件 如果是按引用傳遞的話,那麼p就會被自動修改為指向其name屬性為 greg 的新物件,但是由下圖分析可知,引數傳遞是按值傳遞 二 執行環境和作用域 var color blue functi...
Js變數的作用域
根據作用域的不同分為 1.全域性變數 2.區域性變數 var a 100 全域性 function show a show 10 console.log a 此時的a輸出的是100,原因是這個a是全域性變數 script var a 100 function show a show 10 conso...