JScript----解释引擎自动添加分号

一般来说,在没有分号结尾的情况下,如果下一行起首的是(、 [ 、+、-、/这五个字符中的一个,分号不会被自动添加。只有下一行的开始与本行的结尾,无法放在一起解释,JavaScript引擎才会自动添加分号。

<script type="text/javascript">
var x=y=z=1
x
++
y
--
z

console.log(x,y,z);

//1 2 0
</script>

等同于:

<script type="text/javascript">
var x=y=z=1;
x;
++y;
--z;

console.log(x,y,z);

//1 2 0
</script>



continue、break、return和throw这四个语句后面,直接跟换行符,则会自动添加分号。这意味着,如果return语句返回的是一个对象的字面量,起首的大括号一定要写在同一行,否则得不到预期结果。

return
{ first:"one"};


//解释成
return;
{ first:"two"};

由于解释引擎自动添加分号的行为难以预测,因此编写代码的时候不应该省略行尾的分号。


你可能感兴趣的:(解释引擎)