JS 變數作用域的判斷

2021-08-31 07:18:57 字數 602 閱讀 5619

工作中有時候會遇到函式中的引數不知道屬於哪個,有兩種情況下容易弄混

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...