I was working on some backend node.js if condition when i realized i wasnt getting an error when i do this if (value.accepters !== undefined && value.accepters.length !== 0) while checking an object with a missing key but if i do value.accepters.length i get error, can anyone explain why for better understanding, thanks.
An example:
a bit messy, please don't mind.

Code Update
var value = {accepters: ["id1"], rejecters: [], blockedRoom: []}
// did some long code work here
value = {accepters: ["id1"], rejecters: []}
console.log("blockedRoom check 1:", value.blockedRoom !== undefined && value.blockedRoom.length !== 0) // No Error
console.log("blockedRoom check 2:", value.blockedRoom.length !== 0) // Error
var accepters = 0;
var rejecters = 0;
var amongAccepters = false;
var amongRejecters = false;
var amongBlockers = false;
// No Error
if (value.accepters !== undefined && value.accepters.length !== 0){
  accepters = value.accepters.length;
  const foundUserAmongAccepters = value.accepters.find(
    (v) => v.key === key
  );
  if (foundUserAmongAccepters !== undefined) {
    amongAccepters = true;
  }
}
if (value.rejecters !== undefined && value.rejecters.length !== 0) {
  rejecters = value.rejecters.length;
  const foundUserAmongRejecters = value.rejecters.find(
    (v) => v.key === key
  );
  if (foundUserAmongRejecters !== undefined) {
    amongRejecters = true;
  }
}
if (value.blockedRoom !== undefined && value.blockedRoom.length !== 0) {
  const foundUserAmongBlockers = value.blockedRoom.find((v) => v === key);
  if (foundUserAmongBlockers !== undefined) {
    amongBlockers = true;
  }
}
 
    