js中的變數提公升

2021-10-21 15:20:38 字數 728 閱讀 9986

我們在宣告變數的時候,會把變數的宣告提到當前作用域的最上方,賦值還是在**原來的位置賦值。

console.

log(x)

;//undefined

var x=10;

console.

log(x)

;//10

上面的**相當於是

var x;

console.log(x);

x=10;

console.log(x);

把x的宣告提公升到最上方,所以第乙個列印undefined,第二個列印10

functionf(

)varx=

function()

第一種是函式式的宣告,函式的宣告和賦值都會提到當前作用域的最上方,第二種是函式字面量式的宣告,和普通的變數一樣,宣告會提到當前最用域的最上方,賦值還是在原來的位置賦值。

f()

;//1

varf

=function()

functionf(

)f()

;//2

上面的**相當於

function f()

f();

f = function ()

f();

var的變數f會被提公升到最上面,函式式定義的f會覆蓋變數f,所以第乙個列印1,第二個列印2

js中變數提公升

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

js 中的變數提公升

我們知道當區域性變數和全域性變數同名時,區域性變數會覆蓋全域性變數。但我們看一段js var scope 全域性變數 functionf f 全域性變數 在全域性範圍 不再函式內 定義的變數 不管是否使用var 不使用var定義的變數都是全域性變數 js中沒有塊範圍指的是 在函式內無論在js中 定義...

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

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