Someone boo boo’ed the label making

  • herrvogel@lemmy.world
    link
    fedilink
    arrow-up
    13
    ·
    edit-2
    11 hours ago

    Javascript has a tendency to “just work” even when it might be a better idea not to. That is achieved by making assumptions and defaulting to certain pre-defined behaviors where most other languages would just stop. Unless something truly catastrophic happens, JS always tries to find a way to keep the code running. Good or bad, that’s by design just how it works.

    That is an example of this tendency. Normally the " ‘a’ + + ‘a’ " bit should be an error case, because that does not make sense. Where most programming languages would throw and error and stop execution, javascript just soldiers on. It assumes the center bit is an addition of numbers. Except since there’s no number there, it automatically injects the value that represents invalid numbers, which is “nan” for “not a number”. Then, since that “number” is surrounded by letters, it parses that number into a text value, which is the string “nan” itself. And then finally it adds all the letters together to form a banana.

    There are plenty of weird ways to get JS to give you stupid results back. Shit like these are not bugs with the language, it’s just JS working as intended. Except the way language works as intended can lead to actual bugs very easily, is the problem.