1.提高優先級
(1+2)*3 與數學運算中保持一致,先計算1+2再乘以3得出9
同時也可以是其他表達式,如:
復制代碼 代碼如下:(a+(function(i){return i}(2)))*c
2.函數的參數要放在括號裡()
復制代碼 代碼如下:function fun(a,b,c)
{
//…
}
3.立即執行函數表達式
復制代碼 代碼如下:
(function fun(a,b,c)
{
//…
})(1,2,3)
這裡的括號(1,2,3)中的參數對應的是前面函數的參數,當第一個括號的代碼符合表達式規則時,前面的代碼會被作為函數表達式來執行,所以最好在第一個函數表達式前面加上“;”分隔開,否則會報前一個表達式的值不是函數的錯誤。
如:alert(1)(function(){})(),此時alert(1)先執行,由於符合立即執行的函數表達式規則,所以alert(1)的返回值會被作為函數,同時將後一個括號中的值作為參數傳入,但alert(1)返回的是undefined,所以會報錯。解決辦法就是在alert(1)後面加上“;”或者“,”,將其拆分為兩個表達式。
立即執行還可以用
復制代碼 代碼如下:
(function fun(a,b,c)
{
//…
}(1,2,3))
!function fun(a,b,c)
{
//…
}(1,2,3)
void function fun(a,b,c)
{
//…
}(1,2,3)
等方式,只要函數符合函數表達式語法規則即可。
單獨執行一個函數時也需要加括號,不能省略,如:fun(),fun(1,2,3)
4.執行單個或多個表達式,並返回最後一個表達式的值,多個表達式之間需要用逗號“,”分隔開
復制代碼 代碼如下:(1,2+3,4+5,6)//代碼會被一次執行,最後將6作為返回值
5.條件表達式,與4類似,但用於條件判斷中
復制代碼 代碼如下:if(a+b==c){} //if 和 { 之間的內容需放入括號中