[转] 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 : 23
4 };

整个是个赋值语句,其中的{ 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 则不能省略。

时间: 2024-10-19 07:56:44

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

javascript中{},[]中括号,大括号使用

一.{ } 大括号,表示定义一个对象,大部分情况下要有成对的属性和值,或是函数. 如:var LangShen = {"Name":"Langshen","AGE":"28"}; 上面声明了一个名为“LangShen”的对象,多个属性或函数用,(逗号)隔开,因为是对象的属性, 所以访问时,应该用.(点)来层层访问:LangShen.Name.LangShen.AGE,当然我们也可以用数组的方式来访问,如:LangShen[&q

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

Javascript 中括号有4种语义 语义1 : 声明数组 var ary = []; // 声明一个空数组 var ary = [1,3]; // 声明一个数组,同时赋初值 语义2 : 取数组成员 var ary = [1,2,3]; var item = ary[0]; 语义3 : 定义对象成员 (可以不遵循标识符规则 ) 1 var obj = {}; 2 // 为 obj 添加一个属性 name,name 是合法的标识符,即也可以通过 obj.name 方式来定义 3 obj['nam

JavaScript中function的多义性

JavaScript 中的 function 有多重意义.它可能是一个构造器(constructor),承担起对象模板的作用: 可能是对象的方法(method),负责向对象发送消息.还可能是函数,没错是函数,和对象没有任何关系独立存在的可以被调用的函数. 由于语言设计者的妥协,在 JavaScript 加入了一些 class 相关的特性,以使 JavaScript 看起来确实象 Java,可以 “面向对象”.虽然 JavaScript 添加了 new 和 this, 但却没有 class (ES

[译]JavaScript中,{}+{}等于多少?

[译]JavaScript中,{}+{}等于多少? 原文:http://www.2ality.com/2012/01/object-plus-object.html 最近,Gary Bernhardt在一个简短的演讲视频“Wat”中指出了一个有趣的JavaScript怪癖:在把对象和数组混合相加时,会得到一些你意想不到的结果.本篇文章会依次讲解这些计算结果是如何得出的. 在JavaScript中,加法的规则其实很简单,只有两种情况:你只能把数字和数字相加,或者字符串和字符串相加,所有其他类型的值

js 中中括号,大括号使用详解

一.{ } 大括号,表示定义一个对象,大部分情况下要有成对的属性和值,或是函数.如:var LangShen = {"Name":"Langshen","AGE":"28"};上面声明了一个名为"LangShen"的对象,多个属性或函数用,(逗号)隔开,因为是对象的属性,所以访问时,应该用.(点)来层层访问:LangShen.Name.LangShen.AGE,当然我们也可以用数组的方式来访问,如:Lang

javascript中字符串格式转化成json对象记录

什么是JSON JSON(JavaScript Object Notation)是一种优美的JavaScript对象创建方法.JSON也是一种轻量级数据交换格式.JSON非常易于人阅读与编写,同时利于机器解析与生成.JSON是在AJAX中代替XML交换数据的更佳方案. JSON格式与语法 var jsonobject= {         //对象内的属性语法(属性名与属性值是成对出现的)         propertyname:value, //对象内的函数语法(函数名与函数内容是成对出现的

javascript中的变量、作用域和内存问题

[变量][1]定义:可变的量,相当于给一个不定的数据起了一个外号.变量是存储信息的容器.[2]特性:js中的变量是松散类型的,可以保存任何类型的数据.它只是在特定时间用于保存特定值的一个名字而已.由于不存在定义某个变量必须要保存何种数据类型值的规则,变量的值及其数据类型可以在脚本的生命周期内改变.[3]变量声明:变量可以在声明时赋值,但不能有其他操作,如+=.-=等 var a = 2;//是正确的 var a += 2;//是错误的 var a = 2++;//是错误的,++只能用于变量,不能

Java和JavaScript中使用Json方法大全

林炳文Evankaka原创作品. 转载请注明出处http://blog.csdn.net/evankaka   摘要:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 它基于ECMAScript的一个子集. JSON採用全然独立于语言的文本格式,可是也使用了相似于C语言家族的习惯(包含C.C++.C#.Java.JavaScript.Perl.Python等).这些特性使JSON成为理想的数据交换语言. 易于人阅读和编写.同一时候也易于机器解析和生成

30行代码实现JavaScript中的MVC

从09年左右开始,MVC逐渐在前端领域大放异彩,并终于在刚刚过去的2015年随着React Native的推出而迎来大爆发:AngularJS.EmberJS.Backbone.ReactJS.RiotJS.VueJS…… 一连串的名字走马观花式的出现和更迭,它们中一些已经渐渐淡出了大家的视野,一些还在迅速茁壮成长,一些则已经在特定的生态环境中独当一面舍我其谁.但不论如何,MVC已经并将持续深刻地影响前端工程师们的思维方式和工作方法. 很多讲解MVC的例子都从一个具体的框架的某个概念入手,比如B