js中括号中有四个语义角色
语义1,组织复合语句,是最常见的。
复制代码代码如下所示:
如果(
条件){
…
{ }人
…
}
为(){
…
}
语义2,对象直接卷声明
复制代码代码如下所示:
var obj = { {
名称:杰克,
年龄:23
};
整个是一个赋值语句,其中{姓名:杰克,年龄:23 }是一个表达式。
语义3,
函数或函数的直接量
复制代码代码如下所示:
函数f1(){
…
}
函数(){()
…
}
F1和F2之间的
区别不在于前者是语法解释的时期,后者是在
运行期。不同的是:如果该函数的代码是函数的定义后,没有差异;如果该函数的代码之前调用的函数定义,F1还可以叫它,F2会犯一个
错误,说明F2没有定义。
语义4,结构化异常
处理的语法符号
复制代码代码如下所示:
{试
…
} catch(前){
…
最后,{ }
…
}
这里的括号
不同于符合语句(语义1)。如果在括号中只有一个语句,那么可以在括号中省略括号,例如,等等,但不能忽略。
下面的代码已经纠缠N很长一段时间了
复制代码代码如下所示:
函数())立即
执行,语法分析
报告 {构造函数直接获取对象,构造函数语法分析阶段错误
什么谜题是为什么{构造函数构造函数这样写,但是没有错误报告。一种是获取对象的直接量的构造函数,另一种是获取数组的直接数量构造函数。
当然,添加变量不会出错。
构造函数;
在同一案件中
Var(FN =函数){(}),(不是错误)。
js语句实际上是时间优先权,它被理解为一个复合语句}块(语义1),而不是对象
文本(语义2)或语句(语义3)语义函数。
函数()),括号被理解为自然复合语句,在函数()函数前面导致不完整的语句语法语法分析阶段错误。
{构造函数,括号被理解为复合语句,括号后面跟着一个点
运算符。
修复
方法是众所周知的:添加一个强制
操作符()
(函数({)})();(函数())};力作为理解(语义)的函数(3),表示函数函数的实现,即执行后立即声明。
{(})({)}构造函数强制括号理解对象文本(语义2),XX表示对象成员,点运算符可以执行后面的正常性质。