我們知道當區域性變數和全域性變數同名時,區域性變數會覆蓋全域性變數。
但我們看一段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 根據作用域鏈,函式內部訪問乙個變數時,會首先在作用域鏈的前端也就是函式內部尋找變數,找到...