作用域與變數提公升

2021-08-14 06:55:10 字數 604 閱讀 4330

js中變數的作用域有全域性作用域和區域性作用域兩種,作用域簡單來講就是變數與函式的可訪問範圍。

宣告提前是在js預編譯是就進行了,變數提公升知識提公升變數的宣告,並不會吧值也提上來。

例1:

var name = "one" ;

function

() test();

var name = "one" ;

function

() test()

解析:

區域性優先於全域性,預編譯(變數提公升),所以函式內的name為區域性變數,所以第乙個位undefine。

function

test(name)

var name = "one"

test(name)

console.log(name) //one

解析:

傳進test的,實際上是乙個副本,函式返回後這個副本就被清除了,並非實際的name。

作用域與變數提公升

js中變數的作用域有全域性作用域和區域性作用域兩種,作用域簡單來講就是變數與函式的可訪問範圍。區域性作用域變數優先於全域性變數,函式只是乙個作用域的基本單位。例1 var name one function test test console.log name 輸出為 two解析 函式內部省略var...

變數提公升 作用域

console.log a undefined console.log window.a undefined console.log a in window true 在變數提公升階段,在全域性作用域中宣告了乙個變數a,此時就已經把a當做屬性賦值給window了,只不過此時還沒有給a賦值,預設值un...

js變數作用域 變數提公升

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