this post was submitted on 27 Aug 2024
20 points (100.0% liked)

Programmer Humor

32343 readers
1447 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[โ€“] [email protected] 0 points 2 months ago (1 children)

Today I found out that this is valid JS:

const someString = "test string";
console.log(someString.toString());
[โ€“] [email protected] 1 points 2 months ago* (last edited 1 month ago) (2 children)

[This comment has been deleted by an automated system]

[โ€“] [email protected] 0 points 2 months ago* (last edited 2 months ago) (1 children)

I dint know many OO languages that donโ€™t have a useless toString on string types.

Well, that's just going to be one of those "it is what it is" things in an OO language if your base class has a toString()-equivalent. Sure, it's probably useless for a string, but if everything's an object and inherits from some top-level Object class with a toString() method, then you're going to get a toString() method in strings too. You're going to get a toString() in everything; in JS even functions have a toString() (the output of which depends on the implementation):

In a dynamically typed language, if you know that everything can be turned into a string with toString() (or the like), then you can just call that method on any value you have and not have to worry about whether it'll hurl at runtime because eg. Strings don't have a toString because it'd technically be useless.

[โ€“] [email protected] 0 points 2 months ago (2 children)

I dint know many OO languages that donโ€™t have a useless toString on string types

Okay, fair enough. Guess I never found about it because I never had to do it... JS also allows for "test string".toString() directly, not sure how it goes in other languages.

[โ€“] [email protected] 1 points 2 months ago* (last edited 1 month ago)

[This comment has been deleted by an automated system]

[โ€“] [email protected] 1 points 2 months ago

It's also incredibly useful as a failsafe in a helper method where you need the argument to be a string but someone might pass in something that is sort of a string. Lets you be a little more flexible in how your method gets called