JS中;这种写法是什么意思

 我来答
zwjtk
2015-05-08 · TA获得超过1741个赞
知道小有建树答主
回答量:300
采纳率:82%
帮助的人:210万
展开全部

你好,JS中的分号表示语句的结束,但是在JS中,分号不是必须的。

由于分号不是必须的,所以在做代码压缩的时候,经常会因为缺少分号导致代码报错,所以建议开发人员在写JS代码的时候都严格养成使用分号结束语句的习惯。一些简单的例子:

var str = 'I am a string';
var oArr = [];
oArr.push(str);

另外,我们在看别人源代码的时候可能经常会发现下面这种写法:

;(function(){
    // 一大堆代码
})();

分号出现在了所有代码的最前面,这并不是JS代码的什么特殊用法,这只是为了避免多文件合并时,某些文件结尾没有分号,导致代码错误,例如我们有两个JS文件,内容分别是:

(function(){
    function JsClassA(){}
    window.JsClassA = JsClassA;
})()
(function(){
    function JsClassB(){}
    window.JsClassB = JsClassB;
})();

这时候如果直接合并两个文件,我们将会得到下面这段代码:

(function(){
    function JsClassA(){}
    window.JsClassA = JsClassA;
})()(function(){
    function JsClassB(){}
    window.JsClassB = JsClassB;
})();

这个时候我们如果执行这段代码就会得到一个 'TypeError: undefined is not a function' 的错误。而如果我们在每个文件的开头加一个分号,我们得到的是:

;(function(){
    function JsClassA(){}
    window.JsClassA = JsClassA;
})();(function(){
    function JsClassB(){}
    window.JsClassB = JsClassB;
})();

这时再执行该段代码,运行一切正常。


希望能帮到你,如有疑问欢迎追问,望采纳~~~

kad0108
2015-05-08 · 超过33用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:70.1万
展开全部
分号表示此行语句结束
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式