为什么下面的代码返回1?那没有道理。
var length = "".split(" ").length;
console.log(length);
答案 0 :(得分:5)
因为如果The server responded with a non-JavaScript MIME type of ""
中没有split
,string
将返回原始split char
。
喜欢:
string
注意:当字符串为空时,
"".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"]
对于空字符串也是如此。