js 中的變數提公升

2021-09-26 14:04:49 字數 519 閱讀 3686

我們知道當區域性變數和全域性變數同名時,區域性變數會覆蓋全域性變數。

但我們看一段js**

var

= scope =

"全域性變數"

;functionf(

)f()

全域性變數:在全域性範圍(不再函式內)定義的變數(不管是否使用var)、不使用var定義的變數都是全域性變數

js中沒有塊範圍指的是:在函式內無論在js中**定義變數js函式內其他地方都可以呼叫

第一次輸出的並不是「全域性變數」

而是undefined 為什麼會出現這個結果呢?

這就需要我們了解 js 變數提公升機制

:所謂的變數提公升指的是變數宣告總是會被解析器「提公升」到函式頂部

實際上函式變為:

var

= scope =

"全域性變數"

;functionf(

)f()

js中變數提公升

js初學者,如果之前接觸的有其他程式語言的經驗,往往容易被js 的執行結果,感覺到莫名其妙,其實很多時候,不太了解,其中的變數提公升的原理。如下 所示 console.log a 輸出函式體 var a 15 function a console.log a 15如果沒有接觸過js,肯定想不明白是怎...

js中的變數提公升

我們在宣告變數的時候,會把變數的宣告提到當前作用域的最上方,賦值還是在 原來的位置賦值。console.log x undefined var x 10 console.log x 10上面的 相當於是 var x console.log x x 10 console.log x 把x的宣告提公升到...

js中的變數提公升和函式提公升

一,變數提公升 顧名思義,變數提公升就是函式在執行時,會把在下面的變數提公升到函式的top位置,來看栗子 var scope hello function t t 此時輸出的結果是 第乙個輸出undefined 根據作用域鏈,函式內部訪問乙個變數時,會首先在作用域鏈的前端也就是函式內部尋找變數,找到...