Coder Social home page Coder Social logo

Comments (7)

douglascrockford avatar douglascrockford commented on May 11, 2024

No. We are looking at a better alternative to isNaN in a later edition. In the meantime, I cannot recommend the false equality trick.

from jslint.

 avatar commented on May 11, 2024

isNaN and isFinite are inadequate in their current forms: not only can they be implemented in terms of the standard equality operators, but their automatic coercion of their arguments to numbers is unnecessary at best and unexpected at worst.

As @douglascrockford noted, the spec recognizes that a better alternative is needed; see the note in section 15.1.2.4:

A reliable way for ECMAScript code to test if a value X is a NaN is an expression of the form X !== X. The result will be true if and only if X is a NaN.

from jslint.

 avatar commented on May 11, 2024

@yahelc In the meantime, I would recommend overwriting the global isNaN and isFinite functions with the following:

function isNaN(value) {
  return value != value;
}

function isFinite(value) {
  return value == value && value != 1 / 0 && value != -1 / 0;
}

from jslint.

douglascrockford avatar douglascrockford commented on May 11, 2024

That is terrible advice.

from jslint.

GarrettS avatar GarrettS commented on May 11, 2024

Replacing the global isNaN with your own could make for some confusing and surprising code, for sure. Strongly agree not to do that.

The inequality check clearly works as specified; what's your reason for recommending against it?

isNumberNaN = (typeof x == "number" && x !== x);

from jslint.

douglascrockford avatar douglascrockford commented on May 11, 2024

typeof x === 'number' && isNaN(x)

from jslint.

GarrettS avatar GarrettS commented on May 11, 2024

Yep. Clearer, less thinking req'd, no comment needed. Can fail if somebody messes with global isNaN.

from jslint.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.