Man kann verwenden typeof
um festzustellen, ob ein Wert primitiv oder umrahmt ist.
Bedenken Sie:
typeof "foo"; // "string"
typeof new String("foo"); // "object"
In Kombination mit Object.prototype.toString
könnten wir die folgenden beiden Funktionen definieren
var toString = Object.prototype.toString;
var is_primitive_string = function(s) {
return toString.call(s) === "[object String]" && typeof s === "string";
};
var is_boxed_string = function(s) {
return toString.call(s) === "[object String]" && typeof s === "object";
};
Gibt es alle Anwendungsfälle für diese beiden Funktionen? (Oder ähnliche Funktionen für Number
, Boolean
, usw.).
Das Konzept für diese Frage stammt aus folgenden Überlegungen Kommentar von T.J.Crowder .
Sollten wir uns jemals darum kümmern, ob ein Wert, den wir haben, primitiv oder kastenförmig ist?