作為一名編程人員,和括號打交道是必不可少的。你可知道在不同的上下文中,括號的作用是不一樣的,今天就讓我們簡單總結下javascript小括號、中括號、大括號的用法。
總的來說,JavaScript中小括號有五種語義,中括號有四種語義,而大括號也有四種語義。
小括號:
語義1,函數聲明時參數表(形參)
語義2,和一些語句聯合使用以達到某些限定作用(if、for等)
語義3,和new一起使用用來傳值(實參)
語義4,作為函數或對象方法的調用運算符(如果定義了參數也可與語義3一樣傳實參)
語義5,強制表達式運算(常用有eval解析JSON和匿名函數自執行)
中括號:
語義1,聲明數組
語義2,取數組成員
語義3,定義對象成員(可以不遵循標識符規則,可以以數字開頭定義標識符)
語義4,取對象成員
大括號:
語義1,組織復合語句,這是最常見的
語義2,對象直接量聲明(賦值對象)
語義3,聲明函數或函數直接量賦值
語義4,結構化異常處理的語法符號(try...catch語句)
PS:(對於小括號語義5,強制表達式運算
- function(){}() //匿名函數立即執行,語法分析期報錯
- {}.constructor //獲取對象直接量的構造器,語法分析期報錯 實際上是js的“語句優先”在作怪,即{}被理解成復合語句塊而不是對象直接量或函數直接量的語義。可使用眾所周知的方法,加個強制運算符()轉化為值即可。
- 具體內容可參見http://blog.csdn.net/woshinia/article/details/18666223