今天在工作中发现一个诡异的问题,理论上应该是没有元素的数组,长度居然是1。查了半天,原来是Javascript中的split和其他语言中不同,即对空string使用split会返回含有一个空string的数组,而不是一个空数组。

var str = "",
    arr = str.split("_");
 
console.log(arr.length); // 1
console.log(arr); // [""]

参考MDN,也有类似的说明。

Note: When the string is empty, split returns an array containing one empty string, rather than an empty array.

BetaRabbit
1.4k 声望22 粉丝

全栈,猫奴