首頁  >  文章  >  web前端  >  解析Javascript小括號「()」的多義性_javascript技巧

解析Javascript小括號「()」的多義性_javascript技巧

WBOY
WBOY原創
2016-05-16 17:10:581580瀏覽

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(){   // ... })();
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn