如何在 JavaScript 中检查变量或对象的类型?


JavaScript 是一种弱类型编程语言,这意味着没有声明变量类型的规则。一个变量可以在程序中存储多种数据类型,因此在使用变量之前了解变量类型至关重要。在 JavaScript 中,我们可以使用 `typeof` 运算符来检查变量或对象的类型。`typeof` 运算符接受一个变量并返回其类型的字符串格式。

除了 `typeof` 运算符之外,JavaScript 还提供 `instanceof` 运算符来检查变量或对象的类型。`instanceof` 运算符接受两个参数:要检查的对象和要检查类型的构造函数。如果构造函数是对象的类型,则运算符将返回 true。

使用 typeof 运算符

`typeof` 运算符是一个一元运算符,它接受一个参数并返回一个字符串,指示该参数的类型。例如,`typeof` 运算符可以用来检查变量或对象的类型。

语法

typeof variable_name 

在上面的语法中,`variable_name` 是您想要确定其类型的变量的名称。

`typeof` 运算符可以返回以下字符串之一:

  • "number" 用于数字

  • "string" 用于字符串

  • "boolean" 用于布尔值

  • "undefined" 用于未定义的值

  • "object" 用于对象(包括数组和函数)

  • "symbol" 用于符号(ECMAScript 2015 中新增)

示例

在这个例子中,我们使用 `typeof` 运算符来检查 JavaScript 中变量或对象的类型。我们声明了不同类型的多个变量,例如数字、字符串、布尔值等。我们在网页上显示了这些变量。我们在按钮上使用了点击事件处理程序来检查变量的类型。用户每次点击按钮时,都可以在网页上看到所有变量及其各自的类型。`typeof` 运算符有助于在执行特定操作之前确定变量或对象的类型。例如,您可能使用它来确保变量在执行算术运算之前是数字,或者变量在与另一个字符串连接之前是字符串。

<html>
<body>
   <h2>Checking the <i> type of a variable or object </i> in JavaScript</h2>
   <h4>The variables are as follows:</h4>
   <ul>
      <li>let num = 10</li>
      <li>let str = "Hello"</li>
      <li>let bool = true</li>
      <li>let un</li>
      <li>let n = null</li>
      <li>let arr = [1, 2, 3]</li>
      <li>let func = function () {}</li>
   </ul>
   <button onclick = "checkType()"> Check Type </button>
   <div id = "root"> </div>
   <script>
      let num = 10
      let str = 'Hello'
      let bool = true
      let un
      let n = null
      let arr = [1, 2, 3]
      let func = function () {}
      let root = document.getElementById('root')
      function checkType() { 
         root.innerHTML = '<h4>The types of variables are as follows:</h4>'
         root.innerHTML += '<ul> <li> let num = 10 is a ' + typeof num + ' </li> <li> let str = "Hello" is a ' + typeof str + ' </li> <li> let bool = true is a ' + typeof bool + ' </li> <li> let un is a ' + typeof un + ' </li> <li> let n = null is a ' + typeof n + ' </li> <li> let arr = [1, 2, 3] is a ' + typeof arr + ' </li> <li> let func = function () {} is a ' + typeof func + ' </li> </ul> '
      }
   </script>
</body>
</html> 

使用 instanceof 运算符

在 JavaScript 中,`instanceof` 运算符用于在运行时确定对象的类型。它返回一个布尔结果,指示该对象是否是特定类的实例。

语法

object_name instanceof object_constructor 

在上面的语法中,`object_name` 是您想要确定其类型的对象的名称。

示例

在这个例子中,我们使用 `instanceof` 运算符来检查 JavaScript 中变量或对象的类型。我们声明了一个使用 String 类构造函数的字符串类型变量和一个自定义类对象“myClassObject”,它是“myClass”的对象,并在网页上显示它们。我们在按钮上使用了点击事件处理程序来检查对象的类型,并在网页上显示它们。

<html>
<body>
   <h2>Checking the <i> type of a variable or object </i> in JavaScript</h2>
   <h4>The object variables are as follows:</h4>
   <ul> 
      <li>let str = new String('Hello World!')</li>
      <li>let myClassObject = new MyClass()</li>
   </ul>
   <button onclick = "checkType()"> Check Type </button>
   <div id = "root"> </div>
   <script>
      let str = new String('Hello World!')
      class MyClass {}
      let myClassObject = new MyClass()
      let root = document.getElementById('root')
      function checkType() {
         root.innerHTML = '<h4> The types of objects using instanceof operator: </h4>'
         root.innerHTML += '<ul> <li> str is an instance of String: ' + (str instanceof String) + ' </li> <li> str is an instance of MyClass: ' + (str instanceof MyClass) + ' </li> </ul>'
         root.innerHTML += ' <ul> <li> myClassObject is an instance of String: ' + (myClassObject instanceof String) + ' </li> <li> myClassObject is an instance of MyClass: ' + (myClassObject instanceof MyClass) + ' </li> </ul>'
      }
   </script>
</body>
</html> 

当与某些对象一起使用时,`typeof` 和 `instanceof` 运算符可能并非总是返回预期结果。例如,`typeof` 运算符对于数组返回“object”,即使它们是 JavaScript 中的一种对象类型。要正确检查值是否为数组,可以使用 `Array.isArray()` 方法。

更新于:2023年2月8日

11K+ 次浏览

启动您的 职业生涯

完成课程获得认证

开始学习
广告