El operador typeof
no es un infijo (por lo que el LHS de su ejemplo no tiene sentido).
Es necesario utilizarlo como tal ...
if (typeof a_string == 'string') {
// This is a string.
}
Recuerde, typeof
es un operador, no una función. A pesar de esto, verá que typeof(var)
se usa mucho en la naturaleza. Esto tiene tanto sentido como var a = 4 + (1)
.
Además, es posible también utilizar ==
(operador de comparación de igualdad), ya que ambos operandos son String
s (typeof
siempre devuelve una String
), JavaScript está definido para llevar a cabo los mismos pasos tenían Solía ===
(operador de comparación estricta) .
Como Box9 mentions, este won't detect instancia un objeto String
.
Puede detectar para que con ....
var isString = str instanceof String;
jsFiddle.
... o ...
var isString = str.constructor == String;
jsFiddle.
Pero esto no funcionará en un entorno multi window
(piensa iframe
s).
Usted puede evitar esto con ...
var isString = Object.prototype.toString.call(str) == '[object String]';
jsFiddle.
Pero, de nuevo, (como Box9 mentions), es mejor que solo utilice el formato literal String
, p. var str = 'I am a string';
.
Further Reading.
posible duplicado de [Comprobar si la variable es número o cadena en javascript] (http://stackoverflow.com/questions/1303646/check-whether-variable-is-number-or-string-in-javascript) – Flimzy