01 小白學習關於js變數提公升

2021-10-11 01:27:19 字數 782 閱讀 4091

有如下**:

console.log(a);

var a = 1

js在執行時 ,var定義的變數存在乙個變數提公升(即將定義提前執行了),其實按下面順序執行:

var a;

console.log(a);

a=1;

所以執行結果是undefined

還有存在變數提公升的就是function(),在執行方法時,先呼叫封裝函式,再執行結果,即執行一下**也不會報錯:

console.log(add(2,3));

function add (a,b)

執行結果入下:

js支援變數提公升和函式提公升,這個提公升只是乙個預解析,並不是編譯,es6的let 和 const都不支援變數提公升,直接報錯

let a ;

console.log(a) //undefined

console.log(b);  //報錯,const定義變數也是一樣的

let b;

js變數提公升

在了解變數提公升之前,應該先了解一下js到底是一種什麼型別的語言,他的執行機制又是怎樣的.console.log global undefined var global global console.log global global function fn fn 可以看出來 變數提公升只是將變數提...

js變數提公升

var a 100 functionf console.log a f undefined 200var a 100 functionf f console.log a 100如果你習慣了強型別語言的程式設計方式,那麼看到上述輸出結果你肯定會大吃一驚。我們來看一下c 的乙個例子 include us...

JS變數提公升

在當前作用域中,js 自上而下執行之前,瀏覽器首先會把所有的帶var function關鍵字的進行提前宣告 定義。注意宣告和定義的區別 宣告 declare var num 在當前作用域中吼一嗓子我有num這個名字了。定義 define num 12 把宣告的名字賦值。console.log a u...