当前位置: 首页 > 面试题库 >

在JavaScript中查找变量类型

邢冷勋
2023-03-14
问题内容

在Java中,可以使用instanceOfgetClass()在变量上查找其类型。

如何在JavaScript中找出不是强类型的变量类型?

例如,如何知道bara是a Boolean还是a Number或a String

function foo(bar) {
    // what do I do here?
}

问题答案:

用途typeof

> typeof "foo"
"string"
> typeof true
"boolean"
> typeof 42
"number"

因此,您可以执行以下操作:

if(typeof bar === 'number') {
   //whatever
}

但是,如果用它们的对象包装定义了这些原语,则要小心(永远不要这样做,请尽可能使用文字):

> typeof new Boolean(false)
"object"
> typeof new String("foo")
"object"
> typeof new Number(42)
"object"

数组的类型为still
object。在这里,您确实需要instanceof操作员。

更新:

另一种有趣的方式是检查以下内容的输出Object.prototype.toString

> Object.prototype.toString.call([1,2,3])
"[object Array]"
> Object.prototype.toString.call("foo bar")
"[object String]"
> Object.prototype.toString.call(45)
"[object Number]"
> Object.prototype.toString.call(false)
"[object Boolean]"
> Object.prototype.toString.call(new String("foo bar"))
"[object String]"
> Object.prototype.toString.call(null)
"[object Null]"
> Object.prototype.toString.call(/123/)
"[object RegExp]"
> Object.prototype.toString.call(undefined)
"[object Undefined]"

这样,您就不必区分原始值和对象。



 类似资料:
  • 问题内容: 是否可以通过名称来在页面上查找JavaScript变量(将其作为对象)?变量名可用作字符串常量。 问题答案:

  • 有一个代码: 当我试图获取或时,它只显示。但是 我不明白,为什么会这样。

  • 所以我有一个类类型的列表。例如,我有一个教室和一个学生班。 我创建了一个学生列表:

  • 问题内容: 简而言之,问题 是 : 有没有一种方法可以防止Python在当前作用域之外查找变量? 细节: 如果在当前作用域中未定义变量定义,Python将在外部作用域中查找它们。因此,这样的代码在重构过程中如果不小心,很容易中断: 如果我重命名了函数参数,但忘了在函数体内重命名它们,代码仍将运行: 我知道从外部范围中隐藏名称是一种不好的做法。但是,无论如何都有一些原因: 有时使用相同的名称可能很有

  • 我面临的问题是,我必须将一个更大的html和javascript项目翻译成几种语言。html的内容没有问题,但是大量的javascript文件是有问题的,因为我在开发过程中有点懒。例如,如果我需要一个消息文本,我只是把它添加在有关的位置。 我现在的方法是,我对每一次出现的和,都使用内置文件搜索(Eclipse),这将非常耗时,错误不可避免。 以下是文件中出现的一些示例: 有时我混合使用和,有时一个

  • 问题内容: 我在以下代码中收到“ ORA01006绑定变量在第15行不存在”错误: 我只是试图遍历表中的所有字符列,并计算每个字符列中与v_search_string值匹配的值。 行“ dbms_output.put_line(v_query_str);” 打印一行:SELECT COUNT(*)FROM T1 WHERE Col1 Like’%:1%’ 表中有10列是指定的类型。 显然那里有一个