• JackbyDev
    link
    fedilink
    English
    72 years ago

    This is JavaScript undefined logic specifically where it means the key isn’t present on the object.

    • @Phen@lemmy.eco.br
      link
      fedilink
      42 years ago

      Except you can add the key with an undefined value and it may have different behaviors than if the key was really not there.

      • JackbyDev
        link
        fedilink
        English
        12 years ago

        Please add a trigger warning to this in the future, this is too scary

        • @activ8r@sh.itjust.works
          link
          fedilink
          1
          edit-2
          2 years ago

          In JS a Boolean has 4 states.
          true
          false
          undefined (where the key is set to undefined)
          undefined (where the key doesn’t exist on the object)

          if (obj.value === true) {  
              console.log(1);
          } else if (obj.value === false) {
              console.log(2);
          } else if ("value" in obj) { // key "value" is in the obj, but it is set to undefined 
              console.log(3);
          } else { // key "value" is not in object
              console.log(4);
          }
          

          You’re welcome.