• raspberriesareyummy@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      2 months ago

      BS. A language shouldn’t have operators that allow non sensical operations like string concatenation when one operand is not a string.

      • 3abas@lemm.ee
        link
        fedilink
        arrow-up
        0
        ·
        2 months ago

        It’s not nonsensical, implicit type coercion is a feature of JavaScript, it’s perfectly logical and predictable.

        JavaScript is a filthy beast, it’s not the right tool for every job, but it’s not nonsensical.

        When you follow a string with a +, it concatenates it with the next value (converted to string if needed). This makes sense, and it’s a very standard convention in most languages.

        Applying arithmetic to a string would be nonsensical, which they don’t do.

          • 3abas@lemm.ee
            link
            fedilink
            arrow-up
            0
            ·
            2 months ago

            Sure. And you’re entitled to yours. But words have meaning and this isn’t MY OPINION, it’s objective reality. It follows strict rules for predictable output, it is not nonsensical.

            You’re entitled to think it’s nonsense, and you’d be wrong. You don’t have to like implicit type coercion, but it’s popular and in many languages for good reason…

            Language Implicit Coercion Example
            JavaScript '5' - 1 → 4
            PHP '5' + 1 → 6
            Perl '5' + 1 → 6
            Bash $(( '5' + 1 )) → 6
            Lua "5" + 1 → 6
            R "5" + 1 → 6
            MATLAB '5' + 1 → 54 (ASCII math)
            SQL (MySQL) '5' + 1 → 6
            Visual Basic '5' + 1 → 6
            TypeScript '5' - 1 → 4
            Tcl "5" + 1 → 6
            Awk '5' + 1 → 6
            PowerShell '5' + 1 → 6
            ColdFusion '5' + 1 → 6
            VBScript '5' + 1 → 6
            ActionScript '5' - 1 → 4
            Objective-J '5' - 1 → 4
            Excel Formula "5" + 1 → 6
            PostScript (5) 1 add6

            I think JavaScript is filthy, I’m at home with C#, but I understand and don’t fear ITC.

  • REDACTED@infosec.pub
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    2
    ·
    2 months ago

    Imagine doing math with strings and then blaming the language not yourself

    • zagaberoo@sopuli.xyz
      link
      fedilink
      arrow-up
      1
      ·
      2 months ago

      The risk is when it happens unintentionally. The language is bad for hiding such errors by being overly ‘helpful’ in assuming intent.

      • FooBarrington@lemmy.world
        cake
        link
        fedilink
        arrow-up
        0
        ·
        2 months ago

        Sure, but at this point it’s your own fault if you don’t use Typescript to keep these issues from happening.

          • FooBarrington@lemmy.world
            cake
            link
            fedilink
            arrow-up
            0
            ·
            2 months ago

            Not really, considering Typescript only adds static types to JS. It’s not a different language, it’s an extension.

            • Quibblekrust@thelemmy.club
              link
              fedilink
              English
              arrow-up
              1
              ·
              2 months ago

              Since it needs to be compiled to JavaScript in order to be used, I kind of consider it a different language. Yes, it’s a strict superset of JavaScript, but that makes it different.