为什么使用JavaScript;“数组中的长度”;对于具有一个或多个元素的数组,是否给出不同的结果?
在chrome 87中,数组中的为什么使用JavaScript;“数组中的长度”;对于具有一个或多个元素的数组,是否给出不同的结果?,javascript,arrays,Javascript,Arrays,在chrome 87中,数组中的长度给出以下输出: length in ['test'] false 但如果我们尝试使用更多元素,它会输出以下结果: length in ['test', 'test2'] true 有人能解释这些不同的输出吗?length在您的代码片段中是一个变量,我假设它是在其他地方定义的,并且有一些值。根据[0,1]中的长度值,可以返回true或false。 既然您提到了Chrome,我假设您正在Chrome开发工具中运行此代码段。在本例中,length是一个全局变量(
长度
给出以下输出:
length in ['test']
false
但如果我们尝试使用更多元素,它会输出以下结果:
length in ['test', 'test2']
true
有人能解释这些不同的输出吗?
length
在您的代码片段中是一个变量,我假设它是在其他地方定义的,并且有一些值。根据[0,1]中的长度值,
可以返回true
或false
。
既然您提到了Chrome,我假设您正在Chrome开发工具中运行此代码段。在本例中,length
是一个全局变量(实际上,它是window:)的一个属性)。检查它的值-它可能是1
。这解释了为什么['test']中的1为false(这里没有索引为1
的元素),而['test1','test2']
中的1为true
如果要检查属性“length”是否存在,则需要将其作为字符串:
'length' in []
在这种情况下,它将为任何数组返回true
,因为所有数组都具有“length”属性您使用的length
不是指'length'
属性,而是指存在于窗口中的全局标识符length
中包含的值<代码>窗口。长度
为:
返回窗口中的帧数(或
或
元素)
因此,如果窗口中正好有一个frame或iframe,则代码将生成该结果,因为第二个数组具有[1]
属性,但第一个数组没有[1]
属性
演示这一点的实时片段:
//注意HTML中存在一个IFRAME
log(长度以['test']为单位);
log(长度以['test','test2']为单位)代码>
长度的值是多少?这个解释听起来不错!谢谢