Javascript中小括號有五種語意
語意1,函數宣告時參數表
複製程式碼
程式碼:
function func(arg1,arg2){
// ...
}
語意2,和一些語句合併使用以達到某些限定作用
複製程式碼
程式碼如下:
// 和for infor 🎜>for(var a in obj){
// ...
}
// 和if一起使用
if(boo){
//...
}
// 和while一起使用
while(boo){
// ...
}
// 和do while一起使用
do{
// ...
}while(boo)
注意:與if、while及do while一起使用時小括號會將其中的表達式結果隱式的轉換成布林值。見 JavaScript中的隱式型別轉換 。
語義3,和new一起使用用來傳值(實參)
程式碼如下:
// 假設已經定義了類別Person,它有兩個欄位名稱(name),年齡(age)
var p1 = new Person('Jack',26) ;
語意4,作為函數或物件方法的呼叫運算子(如果定義了參數也可與語意3一樣傳實參)
程式碼如下:
// 假設已經定義了函數func
func();
// 假設已經定義了物件obj,且擁有func方法
obj.func();
這裡提下typeof運算符,有人喜歡這麼使用
typeof(xxx);
請注意typeof後的小括號並非語意4(即不是函數呼叫),而是後面提到的語意5。我使用typeof一般不加後面的小括號。
語意5,強製表達式運算
關於語意5,大家最熟悉的莫過於使用eval解析JSON複製程式碼
程式碼如下:
程式碼如下:
程式碼如下:
程式碼如下:function strToJson(str){
// eval 中字串兩旁加了強制運算子()
var json = eval('(' str ' ;
}
又如使用較多的是匿名函數自執行
複製代碼 程式碼如下:(function(){ // ... })();