• povario@discuss.tchncs.de
    link
    fedilink
    English
    arrow-up
    0
    ·
    2 months ago

    probably not true in most other langauges. although I’m not well versed in the way numbers are represented in code and what makes a number “NaN”, something tells me the technical implications of that would be quite bad in a production environment.

    the definitive way to check for NaN in JS would probably be something like

    // with `num` being an unknown value
    
    // Convert value to a number
    const res = Number(num);
    
    /*
     * First check if the number is 0, since 0 is a falsy
     * value in JS, and if it isn't, `NaN` is the only other
     * falsy number value
     */
    const isNaN = res !== 0 && !res;
    
    • smlckz@programming.dev
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      1 month ago

      Another way to check whether a number is NaN:

      const isNaN = res !== res;
      

      As NaN is the only value out there that is not equal to itself. See my other comment on this post for more: https://programming.dev/comment/17221245

      This comparison should work in every programming language out there that implements/respects/uses IEEE 754 floating point numbers.