如何检查变量是否为String类型

时间:2013-11-29 09:59:37

标签: coffeescript

我正在使用ajax获取数据,结果可以是结果数组,也可以是“找不到结果”的字符串语句。我怎么知道我是否有任何结果? 我试过这种方法:

if result == String
    do something

但它不起作用,就像

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

是否还有其他功能可以帮助我获取变量的类型?或者也许我可以测试它的数组类型,它也会非常有用

3 个答案:

答案 0 :(得分:31)

使用typeof

doSomething(result) if typeof result is 'string'

请注意,typeof是一个不是函数的运算符,因此您不能写typeof(result)

你也可以这样做

doSomethingElse(result) if typeof result isnt 'string'

甚至

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

有关Coffeescript条件的更多信息,请参阅http://coffeescript.org/#conditionals

答案 1 :(得分:2)

检查结果是否为字符串:

这可以通过许多常见libraries的方式来完成:

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

检查结果是否为数组:

您也可以尝试使用原生Array.isArray功能,然后回归 类似于上面使用的类型检查样式:

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

答案 2 :(得分:0)

这有用吗?

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