函式的建立 es6塊級作用域

2021-09-14 03:06:21 字數 948 閱讀 4096

1.函式宣告

function sum1(n1,n2);
2.函式表示式

var sum2=function(n1,n2);
兩者的區別:解析器會先讀取函式宣告,並使其在執行任何**之前可以訪問;而函式表示式則必須等到解析器執行到它所在的**行才會真正被解釋執行。

考點:function 函式名(){} 和 var 函式名 = function(){}的解析順序的區別

前者是在執行之前就會被解析 後者是在執行過程中

考題:

function functions(flag) 

} else

}return getvalue();

}

錯誤原因:對於函式宣告,解析器會率先讀取並且讓其在執行任何**前可用,意思就是別的**還沒執行呢,兩個getvalue宣告已經被讀取,所以賦值會覆蓋。函式表示式,當解析器執行到它所在的**行時,才會真正被解釋執行,所以兩個邏輯分支可以分別執行

if (flag) 

} else

}return getvalue();

}

修改原因:函式宣告是做了完全提公升的,這使你在函式宣告前就可以進行函式呼叫。變數宣告是部分提公升,只有宣告會被提公升,賦值(包括函式表示式)操作不會被提公升,因此變數宣告提前,但是賦值不會被覆蓋。

1.塊級作用域:{}內是乙個作用域

2.var、let、const的區別

var定義的變數,沒有塊的概念,可以跨塊訪問, 不能跨函式訪問。

let定義的變數,只能在塊作用域裡訪問,不能跨塊訪問,也不能跨函式訪問。

const用來定義常量,使用時必須初始化(即必須賦值),只能在塊作用域裡訪問,而且不能修改。

ES6的塊級作用域

為什麼要使用塊級作用域?1.在預編譯階段,變數的宣告會被提公升到作用域頂部,而初始化操作依舊留在原處執行,在該作用域中未定義變數的地方也能訪問到該變數,但是此時變數尚未初始化,所以其值為undefined,為此es6引入塊級作用域來強化對變數生命週期的控制 塊級宣告 1.塊級作用域用於宣告在指定塊的...

ES6的塊級作用域

let為j ascript新增了塊級作用域,外層作用域無法獲取到內層作用域,這樣非常安全。即使外層和內層都使用相同變數名,也都互不干擾。例如 1 function test 7 console.log a 輸出 18 910 test 呼叫函式 塊級作用域,允許函式可以在塊級作用域中宣告。在塊級作用...

es6 塊級作用域用法

iife 寫法 function 塊級作用域寫法 塊級作用域的出現,實際上使得獲得廣泛應用的立即執行函式表示式 iife 不再必要了。function f function f 上面 在 es5 jscript不支援塊級作用域環境中執行,會得到 i am inside 因為在 if內宣告的函式f會被...