Javascript中行末的分号

必需:当两条语句位于同一行时

当您在同一行上有两个或多个语句时,分号只能是强制性的:

var i = 0; i++        // <-- semicolon obligatory
                      //     (but optional before newline)
var i = 0             // <-- semicolon optional
    i++               // <-- semicolon optional
可选:声明后

JavaScript中的分号用于分隔语句,但如果语句后跟换行符(或块中只有一个语句),则可以省略它。一个语句是一段代码,告诉计算机做某事。以下是最常见的语句类型:{}

var i;                        // variable declaration
i = 5;                        // value assignment
i = i + 1;                    // value assignment
i++;                          // same as above
var x = 9;                    // declaration & assignment
var fun = function() {...};   // var decl., assignmt, and func. defin.
alert("hi");                  // function call

所有这些声明可以用一个结束;,但他们都不一定。有些人认为这是一个很好的习惯,以终止每个语句;- 这使您的代码更容易解​​析,并压缩:如果您删除换行符,您不必担心几个语句最终没有分离在同一行。

避免!

一个关闭大括号后

关闭大括号后,不要放分号}。唯一的例外是赋值语句,如var obj = {};上面所述。

// NO semicolons after }:
if  (...) {...} else {...}
for (...) {...}
while (...) {...}

// BUT:
do {...} while (...);

// function statement: 
function (arg) { /*do this*/ } // NO semicolon after }

2.在圆括号上的if,for,while或switch语句

它不会伤害到把一个分号后的的语句(它会被忽略,你可能会看到一个警告,这是不必要的)。但是,一个分号它不属于(如轮后括号内的的,,,或语句)是一个非常糟糕的主意:{ }if()ifforwhileswitch

if (0 === 1); { alert("hi") }

// equivalent to:

if (0 === 1) /*do nothing*/ ;
alert ("hi");

此代码将提醒“嗨”,但不能因为0等于1,而是因为分号。它使JavaScript认为你在那里有一个空白的声明,其右边的一切都被视为不再属于if有条件的,因此独立于它。

当然有一个例外...

一个重要的怪癖:在()一个for循环中,分号仅在第一个和第二个语句之后,从不在第三个之后:

for (var i=0; i < 10; i++)  {/*actions*/}       // correct
for (var i=0; i < 10; i++;) {/*actions*/}       // SyntaxError
如何修正你的分号

在Codecademy代码编辑器中构建的JavaScript语法校对工具JSLint在找到不必要的分号(或缺少的分号)方面做得相当不错。

它会显示代码行中的黄色警告三角形。将鼠标悬停在三角形上会告诉您是否有一个缺少的分号或不必要的分号。您通常可以信任这些警告,直到您开发出使用分号在哪里的直觉。

本文章转载自 瑞恩·布宾斯基的codecademy博客~

原文链接:https://www.codecademy.com/blog/78


瑞恩·布宾斯基瑞恩·布宾斯基瑞恩·布宾斯基

转载于:https://www.cnblogs.com/yjz6/p/9799662.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值