是“多余的逗号”吧?
这是因为mArray[1]、mArray[2]、mArray[4]你没有赋值,系统就会把它们默认以空字符串的形式显示出来,但是逗号作为分隔符是不会消失的,所以看起来就是多个连续的逗号了。假如你给mArray[100]赋值,那么将会出现几十个逗号呢。注意,逗号的总数=数组元素的总数-1,比如 var arr=[]arr[100]=999document.write(arr)将会出现100个逗号后面再加999。
你好,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
})()
这时再执行该段代码,运行一切正常。
希望能帮到你,如有疑问欢迎追问,望采纳~~~
str.replace(/ */g," ")/ */里,必须是三个空格
示例:"ab cce eef g".replace(/ */g," ") //结果是"ab cce ee f g"
或者/ +/也一样,里面两个空格