關於IIFE的一些筆記

2021-10-21 20:56:56 字數 1020 閱讀 4221

iife是immediate invoke function expression的縮寫,中文名為立即執行函式,常用來封裝元件使用,它的寫法是

(

function()

)()// 或

+function()

()

那為什麼我們不可以這樣寫

function a()() // uncaught syntaxerror: unexpected token )
要解答這個問題,我們需要先來看看創造函式的方式。

方式1: 函式宣告式

function a()
方式2: 函式表示式

let a = function()
而當我們使用立即執行函式的時候,裡面的內容必須為乙個函式表示式才可以。

當我們在控制台執行+1,-1,~1!1的時候,其實這些都是表示式,因此在執行~function(){}()時,~function(){}這一部分相當於是乙個表示式,所以可以執行。(function(){})也是同理,會把裡面的內容變為乙個表示式。除此以外,下面這種寫法也可以

let a = function()()
不過我有兩個疑問

let test = function()()

這麼寫是可行的,當function變成箭頭函式,let test = () => ()就報錯了,這是為什麼。

當這麼寫的時候可以

(()=>)()
第二個疑問是let test = function()() 可以執行成功,但是我在console.log(test)之後列印的是undefined,這是為什麼

(function a(win, doc))(window)

關於JDBC的一些筆記

1 jdbc連線資料庫 首先要找到相應的資料庫驅動,指定連線的資料庫 載入驅動 class.forname 驅動名 獲得連線 connection con drivermanager.getconnection 資料庫連線 使用者名稱 密碼 2 執行sql語句 statement prepareds...

關於caffe的一些筆記

簡述每層的大小變化過程 data 64,3,227,227 conv1 64,96,55,55 pool1 64,96,27,27 norm1 64,96,27,27 conv2 64,256,27,27 pool2 64,256,13,13 norm2 64,256,13,13 conv3 64,...

關於AlarmManager的一些筆記

1 傳入的intent會被廣播傳輸 2 設定鬧鐘之後會在手機休眠狀態也維持,除非關機或重啟之後 3 onreceive 方法正在執行時,alarmmanager會獲得系統的cpu喚醒鎖,保證期間手機不休眠 4 setexactandallowwhileidle 5 setrepeating int ...