Zum Beispiel müssen wir new RegExp()
anstelle des regex-Literals verwenden, wenn wir den regex-Ausdruck dynamisch berechnen müssen.
Aber genau was sind die Kantenfälle wenn jemand jemals String / Number / Boolean Objekte im Gegensatz zu ihren primitiven Versionen benutzen muss? (weil ich nicht einmal daran denken kann, wo es jemals gebraucht wird)
A String
ist ein Object
, aber es existiert die primitive Version, die als Literal mit 'Hello'
erstellt wird (und bei weitem am häufigsten verwendet wird).
Leute benutzen manchmal new String()
, um einen anderen Typ in eine String
umzuwandeln, zum Beispiel in eine Funktion.
Führende Nullen sind in Number
nicht signifikant, daher muss es ein String
sein.
Ich hätte es aber trotzdem vorgezogen, das Number
a String
durch Verkettung mit einem leeren String
( ''
) zu machen.
Dies ruft implizit toString()
von Number
auf und gibt eine String
primitive zurück.
Ich habe gelesen, dass Leute sagen, dass hey
typeof foo==="string"
nicht narrensicher ist, denn wenn die Zeichenkette mitnew String
erstellt wird, gibt unstypeof
object
.
Sie können eine narrensichere isString()
methode wie so machen ...
jsFiddle .
Dies funktioniert in einer multi window
Umgebung. Sie könnten auch die constructor
Eigenschaft überprüfen, aber dies schlägt in einer multi window
Umgebung fehl.
Siehe auch Kommentare von Felix Kling zu dieser Antwort.
Tags und Links javascript