js 空数组是true还是false
来源:互联网 发布:西瓜皮手表软件下载 编辑:程序博客网 时间:2024/06/10 10:50
转载自:http://www.cnblogs.com/frostbelt/p/3425498.html
var arr = new Array(); // 或 var arr = [];typeof arr; // "object"
既然是object,用于判断条件时就会被转化为true
if(arr)console.log("it's true"); // it's true
但是,如果将arr与布尔值比较:
arr == false; // truearr == true; // false
可是,如果把arr转化为Boolean,的确是true:
Boolean(arr); // true
那arr与布尔值比较时,到底发生了什么?
原来,任意值与布尔值比较,都会将两边的值转化为Number。
如arr与false比较,false转化为0,而arr为空数组,也转化为0:
Number(false) // 0Number(arr) // 0
所以,当空数组作为判断条件时,相当于true。当空数组与布尔值直接比较时,相当于false。
也就出现了以下令人绕圈的现象:
[] == ![]; // true
如何避免数组与布尔值比较时出现的坑呢?可以先把数组转化为布尔值:
Boolean(arr) == true; // true
new Array() == []; //falsenew Arry() == new Arry(); //false
但有个问题很奇怪:
new Array(1) == false;// true// 或[undefined] == false;// true
0 0
- js 空数组是true还是false
- js 空数组是true还是false
- js 空数组是true还是false
- js空数组是true or false
- js中‘0’到底是 true 还是 false
- js中‘0’到底是 true 还是 false
- js中各种类型的在if条件中是true还是false
- TRUE 还是 FALSE
- js中 [] ? true : false 的返回值为什么是true?
- JS true和false
- js的True、False判断
- 前台中: 1 和 0 传入到 vo 中 boolean 类型的是 true 还是 false?
- js中的undefined,null,空字符串,false,true之间的关系
- 0是FALSE 1是TRUE
- CI框架,select 查询sql,没有结果是返回false还是空数组? 什么情况下返回false?
- TRUE 是零还是一
- js判断是函数还是数组
- MY 总结:js return true,return false
- Tomcat(三) Tomcat安装配置: Tomcat+Nginx+keepalived 实现动静分离、Session会话保持的高可用集群
- 谈谈Java反射机制
- 正则表达式之--语法篇
- 从android studio上传项目到开源中国(码云)
- PAT A1039 course list for student (25)
- js 空数组是true还是false
- ucos 初始化
- android 根据设置的日期获取星期几
- LeetCode503《Next Greater Element II》栈的应用
- Spark参数配置及其性能优化
- Java反射在JVM的实现
- iOS 动画(3)
- gulp插件
- Linux文件权限总结