今天我們來講函式宣告和函式表示式
主要從函式定義和兩種定義的區別,以及塊級作用域來講
定義函式有兩種方式,一種是函式表示式,一種是函式宣告式
//函式宣告式
function
fun(arguments)
//函式表示式
var fun=function
(arguments)
1、變數提公升
只有通過函式宣告的函式,才會存在變數提公升,函式表示式不存在變數提公升
sayhi('zhangsan');function
sayhi(name)
//不會報錯,存在變數提公升
//執行順序
//function sayhi(name)
////
sathi('zhangsan');
sayhello('lisi');
var syhello=function
(name)
//報錯,sayhello is not a function
2、函式表示式的函式名可省略
函式宣告必須有函式名是函式被呼叫的基本要求
var mydiv.onclick=function()
自執行函式
及常說的匿名函式
(function(a))(3)
//3,這裡的(3)將被作為引數傳進去,立即執行
js中不存在塊級作用域,存在函式作用域
for(var i=0;i<10;i++){}console.log(i);
//不會報錯10
//原因:變數提公升
解決方案:利用es6中的語法,let定義
//let定義的變數,存在塊級作用域,其作用範圍在定義的{}內for(let i=0;i<10;i++){}
console.log(i)
//10
其實函式的宣告和表示式挺簡單的,大家要注意一下裡面的區別就比較好了。
js函式宣告和函式表示式
區分函式宣告和表示式最簡單的方法是看function關鍵字出現在宣告中的位置 不僅僅是一行 而是整個宣告中的位置 如果function是宣告中的第乙個詞,那麼就是乙個函式宣告,否則就是乙個函式表示式。函式宣告和函式表示式間最重要的區別是它們的名稱識別符號將會繫結在何處。匿名函式表示式,因為funct...
JS 函式宣告和函式表示式
function name function為關鍵字 後加函式名name 可以把函式宣告放在它的呼叫語句之後。原因 解析器在向執行環境中載入資料時,解析器會在執行 前讀取函式宣告,即函式宣告提公升。a function a 沒有錯誤 var a function num1,num2 類似乙個變數賦值...
函式宣告和函式表示式
如果你知道這裡為什麼會報錯,那就請跳過.function fun var a fun a function1 var del function a,b console.log del 9,3 6 var mul function multiplay a,b mul 3,3 9 console.log...