web-dev-qa-db-fra.com

Comment vérifier si la variable est de type chaîne

Je reçois des données avec ajax, et le résultat peut être un tableau de résultats ou une instruction chaîne telle que "aucun résultat trouvé". Comment puis-je savoir si j'ai eu des résultats ou non? J'ai essayé cette approche:

if result == String
    do something

mais sa ne fonctionne pas, juste comme

if typeof(result) == "string"
    do something

Existe-t-il une autre fonction qui puisse m'aider à obtenir le type de la variable? Ou peut-être que je peux le tester pour le type Array, il serait également très utile

19
Leo

utiliser typeof

doSomething(result) if typeof result is 'string'

Notez que typeof est un opérateur et non une fonction, vous ne devez donc pas écrire typeof(result)

Vous pouvez aussi faire ça

doSomethingElse(result) if typeof result isnt 'string'

ou même

return if typeof result is 'string'
   doSomething result
else
   doSomethingElse result

Voir http://coffeescript.org/#conditionals pour plus d'informations sur Coffeescript conditionals.

31
Dave Sag

Vérifiez que le résultat est une chaîne:

Ceci peut être fait de la manière que beaucoup de libraries communes font:

isString = (obj) -> toString.call(obj) == '[object String]'

Vérifiez que le résultat est un tableau:

Vous pouvez également essayer d'utiliser la fonction native Array.isArray et revenir à Un style similaire à la vérification de type utilisé précédemment

isArray = Array.isArray or (obj) -> toString.call(obj) == '[object Array]'
2
phenomnomnominal

Est-ce que ça marche?

if Object.prototype.toString.call(result) == '[object String]'
    do something
0
Andrei Gladkyi