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 和 { 之間的內容需放入括號中