JS 變數提公升 函式名提公升 變數和函式結合的提公升

2021-09-16 12:11:07 字數 1205 閱讀 2216

一、變數的提公升

1、使用var 關鍵字宣告的變數會提公升到**的頭部  變數提公升

例子:console.log(num);//undefined

var num = 100;

console.log(num);//100

var x;

console.log(x);//undefined

2、不使用var關鍵字宣告的變數是全域性變數 對

注意使用環境:如果宣告在函式內部,則函式執行後才可以呼叫

否則,報錯。

例子:function getvalue()

getvalue();

// console.log(num);

console.log(x);

二、函式名的提公升:使用function宣告的函式會提前到**的頭部

1、function 函式名(){}

showmessage();

function showmessage()

2、var 識別符號 = function(){}

var func1 = function () ;

func1();

3、var func3 = new function(形參1,形參2...,函式體)

func2();

var func2 = new function('console.log("呵呵呵呵")');//typeerror: func2 is not a function

三、函式和變數結合的提公升

1、使用var關鍵字宣告的變數會提公升到 當前作用域的頭部

2、變數查詢值的過程:

①首先在當前變數所在作用域查詢;

沒有找到,去上一層作用域查詢;

還沒有找到,再去上一層查詢;

直到找到全域性作用域。

②在任何一層找到該資料 則立即返回值;

③如果一直找到全域性作用域 還沒有發現該值

那麼 如果變數沒有宣告過 報錯 xx is not defined

如果變數宣告過 undefined

④一般把此變數的查詢過程稱為 作用域鏈

*/console.log(c);

var c = 200;

var num = 100;

function showvalue()

show1();

} showvalue();

JS函式提公升和變數提公升

js引擎在執行整個js 的過程中,分為倆步。第一步是讀取和解析js 第二部是執行。在引擎解析js 的時候,當解析器遇見變數宣告 var 變數名 和函式宣告 function 函式名 的時候,會將這些宣告提到各自作用域的最前面。在es6之前,js是沒有塊級作用域的。只有2種作用域 注 在其他語言中,被...

JS 變數提公升與函式提公升

在 es6 出來之前,沒有塊級作用域,只有全域性作用域 和 函式作用域。變數提公升指的是 將變數宣告提公升到它所在作用域的最開始部分。例子 console.log foo undefined var foo 變數提公升 console.log foo 變數提公升 相當於 var foo consol...

變數提公升和函式提公升

1.變數宣告提公升 通過var 定義 宣告 的變數,在定義語句之前就可以訪問到。值 undefined console.log a undefined var a 23 console.log a 23上面 等價於 var a 預編譯,將變數宣告提公升至當前作用域的頂端,初始值為undefined ...