Javascript 检查未定义的值时出现意外结果
我有一个长度最多为4且至少为1的对象数组。在这里,我检查哪些元素存在,并相应地执行操作Javascript 检查未定义的值时出现意外结果,javascript,Javascript,我有一个长度最多为4且至少为1的对象数组。在这里,我检查哪些元素存在,并相应地执行操作 function sendToGroup(receiver_group) { if (receiver_group[0] !== undefined){ console.log(receiver_group[0]) } if(receiver_group[1] !== undefined){ console.log(receiver_group[1]) } if(rec
function sendToGroup(receiver_group) {
if (receiver_group[0] !== undefined){
console.log(receiver_group[0])
}
if(receiver_group[1] !== undefined){
console.log(receiver_group[1])
}
if(receiver_group[2] !== undefined){
console.log(receiver_group[2])
}
if(receiver_group[3] !== undefined){
console.log(receiver_group[3])
}
}
当我给这个函数提供2个元素的数组时,我在控制台输出中看到了预期的第一个和第二个元素,但在
console.log(receiver_group[2])
这怎么可能呢?如果未定义(即未定义),则不应执行此日志代码
编辑:Chrome显示数组的长度为2。就是这样。
接收器组是一个数组。它的内容是
[{id:12, name:"name", age:"21"}, {id:22, name:"name", age:25}]
对于索引为3的项目4,同样的情况也不会发生。如果我执行以下代码,它也会打印未定义的内容:
if(1==2){}
在控制台中,您可以键入变量的名称(例如try)
输入窗口)并打印相关信息。当你运行任何空
函数(如console.log)从控制台打印信息
关于返回值,在本例中未定义
因此,记录[0]和[1]后打印的未定义值是正确的行为,因为它试图打印未定义的返回值
请参考答案:您能演示一下此代码是如何执行的吗?您确定打印
未定义的后没有控制台.log
?您如何知道它来自console.log(receiver\u group[2])
?您必须发布更多代码。获得帮助的最佳方式是提供一个。可能是字符串“undefined”
?一方面,未定义!==undefined
始终为false,但另一方面,“undefined”!=未定义的
为真。什么是console.log(receiver\u group.length)在这种情况下,代码>返回?我的观点是它甚至不应该进入if语句的内部。因为我要说的是,如果输出不是在代码中未定义的,则记录输出。@AkilDemir这个答案的要点是,可能它根本没有输入该语句--未定义的
可能由第二个日志触发--如果您直接在控制台中而不是从.js文件中运行此代码。作为实验,将console.log(receiver_group[2])
替换为console.log(“test”)
。是否打印了“test”
?我正在运行.js文件中的代码,不仅记录,console.log下的代码也在运行。我的意思是尝试运行,但由于receiver_group[2]未定义,因此无法运行,并给出错误。