JavaScript语言有一个机制:在解析时,能够在一句话后面自动插入一个分号,用来修改语句末尾遗漏的分号分隔符. 然而,由于这个自动插入的分号与JavaScript语言的另一个机制发生了冲突,即所有空格符都被忽略,因此程序可以利用空格格式化代码. 这两种机制的冲突,很容易掩盖更为严重的解析错误.有时会不合时宜地插入分号. 例如,在return语句中自动插入分号将会导致这样的后果: 如果return语句要返回一个值,这个值的表达式的开始部分必须和return在同一行上,例如: var f = f…
仅在}之前.一个或多个换行之后和程序输入的结尾被插入 也就是说你只能在一行.一个代码块和一段程序结束的地方省略分号. 也就是说你可以写如下代码 function square(x) { var n = +x return n * n } 但是却不可以写的像下面代码一样,这样就报错了哦 function area(r) { r = +r return Math.PI*r*r }//error 仅在随后的输入标记不能解析时插入 也就是说分号插入是一种错误校正机制.看代码说话 a = b (f())…