为什么;设a=[1,2,3];log(a=[1,2,3])&引用;是";假;用JavaScript?
为什么为什么;设a=[1,2,3];log(a=[1,2,3])&引用;是";假;用JavaScript?,javascript,Javascript,为什么 设a=[1,2,3]; log(a=[1,2,3]),因为数组不同。变量a包含的数组与控制台.log中的数组不同,即使数组值相同。您必须在两个数组中循环,并比较两个数组的每个值,以确定它们是否相等。因为数组不相同。变量a包含的数组与控制台.log中的数组不同,即使数组值相同。您必须遍历这两个数组并比较它们的每个值,以确定它们是否相等。Javascript对象有点像C指针 a包含定义的第一个数组的内存地址 当您执行console.log时(a==[1,2,3])实际上您正在创建一个新数组
设a=[1,2,3];
log(a=[1,2,3])代码>,因为数组不同。变量a
包含的数组与控制台.log中的数组不同,即使数组值相同。您必须在两个数组中循环,并比较两个数组的每个值,以确定它们是否相等。因为数组不相同。变量a
包含的数组与控制台.log中的数组不同,即使数组值相同。您必须遍历这两个数组并比较它们的每个值,以确定它们是否相等。Javascript对象有点像C指针
a
包含定义的第一个数组的内存地址
当您执行console.log时(a==[1,2,3])
实际上您正在创建一个新数组,并将其内存值与保存在a
中的内存值进行比较
这就是为什么:
const a = [];
a.push(1)
是有效的(常量是“指针”,而不是数组)Javascript对象有点像C指针
a
包含定义的第一个数组的内存地址
当您执行console.log时(a==[1,2,3])
实际上您正在创建一个新数组,并将其内存值与保存在a
中的内存值进行比较
这就是为什么:
const a = [];
a.push(1)
是有效的(常量是“指针”,而不是数组)搜索“JavaScript比较数组”会得到:因为它们是两个不同的对象。虽然它们的值是相同的,但您不会比较它们。@soorapadman您的链接问题与此问题无关。他不是问如何,而是问为什么……搜索“JavaScript比较数组”会产生结果:因为它们是两个不同的对象。虽然它们的价值是相同的,但你不能比较它们。@soorapadman你的链接问题与这个问题无关。他不是问如何,而是问为什么。。。