Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查数组是否为空时,是否应使用array.length<;=0或array.length==0?_Javascript_Defensive Programming - Fatal编程技术网

Javascript 检查数组是否为空时,是否应使用array.length<;=0或array.length==0?

Javascript 检查数组是否为空时,是否应使用array.length<;=0或array.length==0?,javascript,defensive-programming,Javascript,Defensive Programming,我习惯用array.length检查空数组。在我看来,没有理由检查length的负值list.length如果list是一个数组,那么不,除了整数之外,length没有任何可能。从: 每个数组对象都有一个不可配置的“length”属性,其值总是小于2**32的非负整数 给定一个数组对象,您甚至不能通过将长度更改为有效长度以外的值来故意使事情变得混乱;将抛出一个错误: const arr=[]; Object.defineProperty(arr,'length',{value:-5})中的“l

我习惯用
array.length检查空数组。在我看来,没有理由检查length的负值
list.length如果
list
是一个数组,那么不,除了整数之外,
length
没有任何可能。从:

每个数组对象都有一个不可配置的“length”属性,其值总是小于
2**32的非负整数

给定一个数组对象,您甚至不能通过将
长度
更改为有效长度以外的值来故意使事情变得混乱;将抛出一个错误:

const arr=[];

Object.defineProperty(arr,'length',{value:-5})
中的“list”是指“array”吗?另外,您可以只使用
!列表长度
。对于空列表,这将返回true,否则返回false。不需要在Javascript数组中进行严格比较(==)。长度是正数的类型。因此,使用==就可以了。但是如果您的数组未定义,那么您可能最终会出错,因此最好也检查一下。希望这有帮助。当然,当你处理代理或数组之类的。。。但是,如果有人正在创建一个数组代理,该代理返回的
长度为负数
,或者创建一个类似于负长度的数组,那么还有其他问题…:-)