为什么“” .split(“”).length返回1?

时间:2018-07-01 19:39:07

标签: javascript

为什么下面的代码返回1?那没有道理。

var length = "".split(" ").length;
console.log(length);

4 个答案:

答案 0 :(得分:5)

因为如果The server responded with a non-JavaScript MIME type of ""中没有splitstring将返回原始split char

喜欢:

string

String.prototype.split()

  

注意:当字符串为空时,"".split(" ") // [""] "a".split(" ") // ["a"] 返回一个包含以下内容的数组   一个空字符串,而不是一个空数组。如果字符串和   分隔符都是空字符串,返回一个空数组。

答案 1 :(得分:2)

split返回长度为[""]的数组1

答案 2 :(得分:1)

简而言之,它将在每个" "处拆分字符串,尽管由于该字符串不包含任何" ",所以它将是一个数组,其中只有一项保留了原始字符串本身,没有不管该字符串是否为空,因此长度为1。

下面的样本显示了如果字符串中只有一个" ",以["",""]结尾的长度。

console.log( "".split("").length );

console.log( "".split(" ").length );

console.log( " ".split(" ").length );

答案 3 :(得分:1)

split将在找到匹配项时“分解”字符串,因此:

"something".split("different");

不会分解字符串,导致:

["something"]

对于空字符串也是如此。