JS變數及其作用域

2022-02-22 17:08:22 字數 525 閱讀 4878

1、 變數及其作用域:變數分為「全域性變數」和「區域性變數」,「全域性變數」申明在函式外部,可供所有函式使用,而「區域性變數」申明在函式體內部,只能在定義該變數的函式體內使用。

(備註:在申明變數時沒有var關鍵字,而是直接賦值的變數均為全域性變數)

2、 在函式體內,區域性變數的優先順序高於全域性變數。

按照我的理解,上面例子最後輸出的答案應該是:1 2 2 1;但是正確的答案是:undefined 2 2 1; 原因就是函式體外部和內部都申明了相同名字的變數時,區域性變數覆蓋了全域性變數。

3、 外部怎麼讀取函式體內部的區域性變數呢?

一般來說,只有函式體內部可以直接得到外部的全域性變數,但是外部要得到函式體內部的區域性變數是不行的。但是,通過在函式體內部再定義乙個函式返回區域性變數,再從外部呼叫函式就能實現了。

JS變數作用域

先明確一點 討論作用域,討論的是非物件成員的變數。在函式以及自定義物件之外宣告的變數,具有全域性作用域 1.瀏覽器會建立乙個window物件,window的所有屬性,都具有全域性作用域 2.反過來,具有全域性作用域的變數,都是window的屬性 3.具有全域性作用域的變數,任何位置都可以訪問 通過上...

js 變數 作用域

一 基本型別與引用型別 針對引用型別值時,複製的只是乙個指標,複製操作結束後,兩個變數實際上將引用同乙個物件 如果是按引用傳遞的話,那麼p就會被自動修改為指向其name屬性為 greg 的新物件,但是由下圖分析可知,引數傳遞是按值傳遞 二 執行環境和作用域 var color blue functi...

js變數作用域 變數提公升

1 js作用域 在es5中,js只有兩種形式的作用域 全域性作用域和函式作用域,在es6中,新增了乙個塊級作用域 最近的大括號涵蓋的範圍 但是僅限於let方式申明的變數。2 變數宣告 1 var x 變數宣告 2var x 1 變數宣告並賦值 3 x 1 定義全域性變數並賦值 3 函式宣告 func...