作为一名编程人员,和括号打交道是必不可少的。你可知道在不同的上下文中,括号的作用是不一样的,今天就让我们简单总结下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