Javascript 数组(0)和数组=[]之间的区别是什么
使用数组(0)和数组=[]创建数组之间有什么区别 据我所知,两者都是空数组对象Javascript 数组(0)和数组=[]之间的区别是什么,javascript,arrays,data-structures,Javascript,Arrays,Data Structures,使用数组(0)和数组=[]创建数组之间有什么区别 据我所知,两者都是空数组对象 array >>> [] Array(0) >>> [] 但当我比较它们时,它们返回“false” var array = [] array === Array(0) >>> false 这是怎么回事 据我所知,两者都是空数组对象 array >>> [] Array(0) >>> [] 是的 但当我比较它们时,它们返回“
array
>>> []
Array(0)
>>> []
但当我比较它们时,它们返回“false”
var array = []
array === Array(0)
>>> false
这是怎么回事
据我所知,两者都是空数组对象
array
>>> []
Array(0)
>>> []
是的
但当我比较它们时,它们返回“false”
var array = []
array === Array(0)
>>> false
当您比较JavaScript中的两个对象时,您正在测试它们是否是相同的对象,而不是相同的对象
据我所知,两者都是空数组对象
array
>>> []
Array(0)
>>> []
是的
但当我比较它们时,它们返回“false”
var array = []
array === Array(0)
>>> false
当您在JavaScript中比较两个对象时,您是在测试它们是否是相同的对象,而不是它们是否是相同的对象。2数组(即使是空的)不能以这种方式进行比较,也不能相等
以下是如何正确比较两个阵列的答案:
2个数组(即使是空的)不能以这种方式进行比较,也不能相等
以下是如何正确比较两个阵列的答案:
因为数组是对象,而不是原语:
var x=5;//原始的
变量y=5;//原始的
console.log(x==y);//真的
变量x=[5];//对象
变量y=[5];//对象
console.log(x==y);//假的
变量x='5';//原始的
变量y='5';//原始的
console.log(x==y);//真的
变量x={0:5};//对象
变量y={0:5};//对象
console.log(x==y);//错误
,因为数组是对象,而不是原语:
var x=5;//原始的
变量y=5;//原始的
console.log(x==y);//真的
变量x=[5];//对象
变量y=[5];//对象
console.log(x==y);//假的
变量x='5';//原始的
变量y='5';//原始的
console.log(x==y);//真的
变量x={0:5};//对象
变量y={0:5};//对象
console.log(x==y);//错误
这两种方法都以相同的方式创建空数组
var p = Array(3); //[undefined, undefined, undefined]
您也可以使用以下方法执行此操作:
var p = [undefined, undefined, undefined];
同样,两者在内部工作方式相同,但用例不同:例如,如果要创建包含n个元素的数组:
var array = new Array(n) // [undefined * n]
如果要在创建时初始化数组的值,请执行以下操作:
var arry = [1,2,3,4];
这里需要注意的一点是,您还可以使用new array()
创建一个初始化数组:
var p = new Array(1,2,3,4); // [1,2,3,4]
但当您尝试使用一个初始化值创建数组时,它会使用该参数并创建一个该大小的数组:
var p = new Array(4) // [undefined*4]
这两种方法都以相同的方式创建空数组
var p = Array(3); //[undefined, undefined, undefined]
您也可以使用以下方法执行此操作:
var p = [undefined, undefined, undefined];
同样,两者在内部工作方式相同,但用例不同:例如,如果要创建包含n个元素的数组:
var array = new Array(n) // [undefined * n]
如果要在创建时初始化数组的值,请执行以下操作:
var arry = [1,2,3,4];
这里需要注意的一点是,您还可以使用new array()
创建一个初始化数组:
var p = new Array(1,2,3,4); // [1,2,3,4]
但当您尝试使用一个初始化值创建数组时,它会使用该参数并创建一个该大小的数组:
var p = new Array(4) // [undefined*4]
@tkim90,我猜是因为在
数组(0)
中有一个0
,它被认为是第一个元素,而空[]
总是表示空数组?这是因为[]==[]=>false
@user273072545345数组(0)
表示一个空数组,而不是以0
作为第一个元素的数组。@tkim90,我猜因为数组(0)
中有一个0
,所以它被认为是第一个元素,而不是总是表示空数组的空[]
数组?这是因为[]=>false
@user273072545345数组(0)
表示空数组,而不是第一个元素为0
的数组。感谢链接,非常有用谢谢链接,非常有用最后一个示例可以使用var a=new Array(1,2,3,4)完成代码>也是。是的,如果要以相同的方式创建一个包含一个元素的数组,您也可以这样做。对于ex:var p=new Array(4),这将创建4个未定义值的数组。是的,这是一个区别。最后一个示例可以使用var a=new Array(1,2,3,4)完成代码>也是。是的,如果要以相同的方式创建一个包含一个元素的数组,您也可以这样做。对于ex:var p=newarray(4),这将创建4个值为未定义的数组。是的,这是一个区别。