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

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

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

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

转载于:https://www.cnblogs.com/betarabbit/archive/2012/08/02/2619259.html

Javascript中对空string调用split返回不是空数组相关推荐

  1. 关于Laravel中使用response()方法调用json()返回数据unicode编码转换的问题解决

    关于Laravel中使用response()方法调用json()返回数据unicode编码转换的问题解决 参考文章: (1)关于Laravel中使用response()方法调用json()返回数据un ...

  2. python匿名基数(lamdba):给你一个整数数组nums,如果任一值在数组中出现至少两次,返回True;如果数组中每个元素互不相同,返回False,用一行代码解决

    """ 给你一个整数数组nums,如果任一值在数组中出现至少两次,返回True:如果数组中每个元素互不相同,返回False,用一行代码解决 例: nums = [1,2, ...

  3. JavaScript中23个String方法(下)

    简单介绍 JavaScript 中的String类型用于表示文本型的数据.它是由无符号整数值(16bit)作为元素而组成的集合.字符串中的每个元素在字符串中占据一个位置. 第一个元素的 index 值 ...

  4. JavaScript中的原型,对split方法的重写

    效果如下图所示: 详细代码如下: <!DOCTYPE html> <html> <head> <title>函数.原型</title> &l ...

  5. JavaScript中的ParseInt(08)和“09”返回0的原因分析及解决办法

    今天在程序中出现一个bugger ,调试了好久,最后才发现,原来是这个问题. 做了一个实验: alert(parseInt("01")),当这个里面的值为01====>07时 ...

  6. JavaScript中slice()、splice()、split()、join()、unshift()、push()

    slice()和splice()都是数组截取方法(字符串中也有slice()方法); 1.a:slice(start,end)接受两个参数,第一个参数表示截取起始位置, 第二个参数表示截取终止位置(不 ...

  7. String的split方法注意,空字符串问题

    String的split方法返回的是一个String数组 意为 按照 "关键字" 分割 String字符串 注意的是: 分割之后的数组,会自动省略后面的空字符串,而不会省略前面的空 ...

  8. 在JavaScript中使用Trim String方法

    It's always helpful to have an easy method method on strings to remove trailing or leading whitespac ...

  9. mock如何为空_Mockito怎么样Mock返回值为空的方法

    [在前面文章中,讨论了如何直接减少构造函数和方法的参数,比如通过自定义类型.引入参数对象.Builder模式.重载和方法命名来减少参数.你可能会奇怪为什么会讨论方法返回 Mockito怎么样Mock返 ...

最新文章

  1. extern C的用法解析
  2. 多边形面积(Area_Of_Polygons)
  3. Http怎么处理长连接
  4. postfix+squirrelmail - rhat 5.4
  5. sql 倒数第二个_小白初探SQL(一)
  6. 消息摘要的编程使用(MD5、SHA、HMAC)
  7. 正则表达式验证六位数以上数字,符号,字母任意两种混合的密码验证策略
  8. Bootstrap分页功能
  9. Python常用小技巧(二)——打开图片
  10. JVM 内存设置大小
  11. 计算机桌面设置,电脑入门(十一)桌面个性化设置
  12. 闲的没事,自己动手修改上兴3.2源代码(2)
  13. c语言中用梯形法求定积分
  14. python哪里最难用_Python里最难的Asyncio,这里有一份非常适合小白的教程
  15. 使用Android Studio 开发地图案例之二(展示普通图、卫星图、交通流量图和百度城市热力图)
  16. Git、Github和GitLab的区别及与SVN的比较
  17. 团队组成五个基本要素_团队建设的五个要素是什么?
  18. 熊猫儿 | 燕赵风云,风云燕赵
  19. 2020美赛数学建模 校级培训——Week_2
  20. CAS:1347750-20-2,氨基PEG巯基,NH2-PEG-SH,Amine-PEG-Thiol

热门文章

  1. python基本数据类型(一)-python3.0学习笔记
  2. 赛前集训前的总结(警醒)
  3. 求最大子数组(贪心算法)
  4. ORACLE中seq$表更新频繁的分析
  5. 开发技术理论学习与实践的关系
  6. Sequelize Unknown column 'createdAt' in 'field list'?
  7. 11.15PMP试题每日一题
  8. 存储IO加强型实例I1+D1 ——为极致存储性能要求场景而生
  9. 研磨数据结构与算法-03栈与队列
  10. java中使用switch case报错case expressions must be constant expressions