记录以下信息,源于一件事情,一位同事,每次我改他的js代码,发现语句结束都不使用分号作为结束。长长的一串,读起来比较吃力。
即便语句的结束不使用分号结束,代码仍然不会报错,正常运行,所以不少程序员懒得去管这个。

使用分号有两个好处:1、其他人读你的代码可读性好。2、减少不必要的语法错误。在互联网为了减少带宽,压缩js的文件并成一行,不会出问题(看jquery

压缩版就知道压缩后的js是并在一行的)。其实我还发现,当使用代码编辑器进行格式化源码的时候,可以避免问题

看下面代码:

..............前面代码

})   //这里作为语句结束,应该有个分号

return false       //这里也要有分号,不加其实不会报错

}

.....后续代码

看最后的"})"应该要以分号结束语句

-----------------------------------------------

js语句的结束符规律

-----------------------------------------------
如果不使用分号结束,在某些情况下是可行的。因为js解析器会去判断此行(在这里就是"})"所在的行),是否会有后续代码,如果没有。就默认语句结束(也就是把空的当成语句结束)。
js解析器会把新行当成新的代码语句。如果有后续呢?这样子就把后面代码也当成同一句进行处理。所以最好是养成写分号作为语句结束符的习惯。为了节省网络带宽,提高网站速度,当需要压缩js脚本的时候。就会把所有的代码并到一行,这样的情况下,如果没有分号,就无法明确知道语句的结束了,就会出现语法错误

看下面代码:

....
}) //这里本来是语句结束符,不加分号";"也不会报错,原因是后面没有任何内容了,所以js解析器会自动把这里当成语句结束

var userid = "{$_userid}";

如果压缩js代码,就会变成如下:

...})var userid = "{$_userid}";

出现语法错误。

归纳:养成一个语句结束加";"的习惯是很好的,可以避免很多问题

05-11 16:11