# ASI 補充說明 ###### tags: `youtube新手` ### “不會” 發生 ASI 的規則: 1. 新的一行是 `(`、`[`、`/` 開始 (容易出錯的地方) ``` var a = 1 var b = a (a + b).toString() (function() { })() (function() { })() var a = 1 var b = a /test/.test(b) ``` 2. 新的一行以 `+`、`-`、`*`、`%` 作開始 (會影響執行結果) ``` var a = 2 var b = a +a ``` 3. 新的一行以 `,`、`.` 作開始 (需注意執行結果) ``` var a = 2 var b = a .toString() console.log(typeof b) var a = 1 ,b = 2 // b 一樣會 var 被宣告 ``` 因此,遇到以上的標點符號前方加入分號也是解決辦法 ex: ``` // 執行錯誤 (function() { })() (function() { })() // 正確 ;(function() { })() ;(function() { })() ```