萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> Javascript小括號“()”的多義性

Javascript小括號“()”的多義性

 這篇文章主要介紹了Javascript小括號“()”的多義性。需要的朋友可以過來參考下,希望對大家有所幫助

Javascript中小括號有五種語義   語義1,函數聲明時參數表     代碼如下: function func(arg1,arg2){    // ...  }    語義2,和一些語句聯合使用以達到某些限定作用  代碼如下: // 和for in一起使用  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 + ')');        return json;  }    又如使用較多的是匿名函數自執行 復制代碼 代碼如下: (function(){    // ...  })(); 
copyright © 萬盛學電腦網 all rights reserved