一、變數的提公升
1、使用var 關鍵字宣告的變數會提公升到**的頭部 變數提公升二、函式名的提公升:使用function宣告的函式會提前到**的頭部例子: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);
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 ...