首页 > 代码库 > [转] Javascript 中的大括号 “{}” 的多义性

[转] Javascript 中的大括号 “{}” 的多义性

Javascript 中的大括号有4种语义作用

语义1 : 组织复合语句,这是最常见的

1 if( condition ) {2   //...3 }else {4   //...5 }6 for() {7   //...8 }

 

语义2 : 对象直接量声明

1 var obj = {2     name : ‘jack‘,3     age : 234 };

整个是个赋值语句,其中的{ name : ‘jack‘, age:23 }是个表达式。

 

语义3 : 声明函数或函数直接量

1 function f1(){2     //...3 }4  5 var f2 = function(){6     //...7 }

f1 与非 f2 的区别是前者在语法解释期,后者在运行期。区别在于:如果调用该函数的代码在函数定义之后,则没有区别;如果调用该函数的代码在函数定义之前,则f1 仍然可以调用,f2 则会报错,提示 f2 未定义。

 

语义4 : 结构化异常处理的语法符号

1 try {2     //...3 }catch( ex ){4     //...5 }finally{6     //...7 }

这里的大括号与符合语句(语义1 )是有区别的,大括号中如果只有一条语句,在 if / else / for 等中大括号是可以省略的,但 try / catch / finally 则不能省略。

[转] Javascript 中的大括号 “{}” 的多义性