函數(shù)的5種聲明
第一種聲明
- function是關(guān)鍵字
-
console.log(x),x只能是字符串至朗,如果不是字符串就調(diào)用x.toString()方法
函數(shù)與字符串區(qū)別有沒(méi)有雙引號(hào)
-
下面圖片有console.log()原型
第二種聲明
第三種聲明
區(qū)別
-
解釋上圖
- 綠色是y的作用區(qū)域
第4種聲明
- 答案是a n=1
第五種聲明
用sum= (x,y)=>x+y不能有多句話(huà)和不能返回對(duì)象
總結(jié)
箭頭函數(shù)沒(méi)有名字
函數(shù)的屬性name
如何調(diào)用函數(shù)
- 調(diào)用call
-
函數(shù)是一段可以反復(fù)調(diào)用的代碼塊
- 可以執(zhí)行的代碼的對(duì)象叫做函數(shù)
回顧
- 右邊是真正用法(硬核)
this和arguments
-
普通模式下如果this是undefined荒揣,瀏覽器會(huì)把undefined改成window
回顧
arguments
- arguments是偽數(shù)組,proto沒(méi)有指向Array.prototype
call stack 調(diào)用棧
總結(jié)過(guò)程
遞歸
stack overflow 還是一個(gè)解答網(wǎng)站哦
作用域
- 只要有函數(shù)就有作用域 就近原則找
- 變量提升 先找聲明
- 看到代碼聲明提升
閉包
- 如果一個(gè)函數(shù)画机,使用了它范圍外的變量冶伞,那么(這個(gè)函數(shù)+這個(gè)變量)就叫做閉包