javascript - Is it ok to do a type-converting comparison when checking if something is a string? -


since typeof somevariable === string not return true strings instantiated new string(), ok this:

if(typeof somevariable == 'string') {   // } 

to make sure comparison catch cases well, or such comparison have unintended side effects?

since typeof somevariable === string not return true strings instantiated new string(), ok this:

it's okay, won't give true string objects, it'll still false. it's not == vs. === matters, it's you're checking.

if want reliably check both string primitives , string objects, then:

if (object.prototype.tostring.call(somevariable) === "[object string]") 

...is how that. works because if somevariable string object, that's string object.prototype.tostring guaranteed return it. if somevariable string primitive, either using thisarg in function#call (loose mode) or object.prototype.tostring function (strict mode) coerce string object before figuring out is. either way, "[object string]".

more (on blog): say what?


Comments

Popular posts from this blog

qt - Using float or double for own QML classes -

Create Outlook appointment via C# .Net -

ios - Swift Array Resetting Itself -