JS中;这种写法是什么意思
2个回答
展开全部
你好,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;
})();
这时再执行该段代码,运行一切正常。
希望能帮到你,如有疑问欢迎追问,望采纳~~~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询