请问JS里面写的数组内容为什么在网页上显示出多余的分号?

JavaScript09

请问JS里面写的数组内容为什么在网页上显示出多余的分号?,第1张

是“多余的逗号”吧?

这是因为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"

或者/ +/也一样,里面两个空格