详解JavaScript中typeof与instanceof用法

详解JavaScript中typeof与instanceof用法

typeof

typeof 是用于判断一个变量的基本数据类型的关键字,无法判断对象的具体类型。

  • 如果变量是字符串,返回 "string"。
  • 如果变量是数字,返回 "number"。
  • 如果变量是布尔型,返回 "boolean"。
  • 如果变量是对象,返回 "object"。
  • 如果变量是函数,返回 "function"。
  • 如果变量是 undefined ,返回 "undefined"。
  • 如果变量是 null,返回 "object"。

示例1:

console.log(typeof "abc");      // string
console.log(typeof 123);        // number
console.log(typeof true);       // boolean
console.log(typeof {});         // object
console.log(typeof function(){});// function
console.log(typeof undefined);  // undefined
console.log(typeof null);       // object

instanceof

instanceof 运算符用于判断某个实例对象是否属于某个构造函数的类型,可以判断对象的具体类型。

语法:object instanceof constructor

其中 object 是实例对象名称,constructor 是构造函数名称。

实例对象是由构造函数新建的对象,通过 instanceof 可以判断这个实例对象是否属于当前构造函数的类型,返回结果为 truefalse

示例2:

function Person(name, age){
  this.name = name;
  this.age = age;
}
let p1 = new Person('Tom', 20);
console.log(p1 instanceof Person);  // true
console.log(p1 instanceof Object);  // true
console.log(p1 instanceof Array);   // false

在上述示例中,p1 是使用 Person() 构造函数创建出来的对象, p1 instanceof Person 返回 true

p1 也是一个对象,同时通过 instanceof 运算符可以判断该对象是不是 Object() 的实例对象,结果为 true

最后, p1 明显不是数组,所以 p1 instanceof Array 的结果为 false

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解JavaScript中typeof与instanceof用法 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 全面解析Bootstrap布局组件应用

    全面解析Bootstrap布局组件应用 Bootstrap是一个开源的前端框架,提供了一套简洁、直观、强悍的组件库。Bootstrap的布局组件是值得一提的,在本文中我们将会全面解析Bootstrap布局组件的应用。 响应式设计 Bootstrap的布局组件强调响应式设计。一个页面不仅仅需要美观,还需要根据不同屏幕尺寸的设备来展现不同的布局效果。Bootst…

    JavaScript 2023年6月11日
    00
  • JavaScript DOM节点添加示例

    当我们需要对网页中的元素进行动态的增删改时,JavaScript就是我们的好帮手之一。在JavaScript中,通过操作网页文档的对象模型(DOM)来实现对页面元素的增删改查。其中节点的添加,是常用的一种操作。 添加DOM节点的方法 在JavaScript中,有多种方式可以添加DOM节点,以下是其中的两种: 1. createElement()方法 crea…

    JavaScript 2023年6月10日
    00
  • ES6入门教程之Array.from()方法

    ES6入门教程之Array.from()方法 简介 ES6新提供了一个用于将类数组对象或者可迭代对象转换成数组的方法——Array.from()。 语法 Array.from(arrayLike[, mapFn[, thisArg]]) 参数说明: arrayLike:必选参数,又称类数组对象或者可迭代对象,即要转换成数组的对象。 mapFn:可选参数,用于…

    JavaScript 2023年5月27日
    00
  • Three.js中网格对象MESH的属性与方法详解

    当使用Three.js创建基于WebGL的3D图形时,网格对象Mesh是最常用的3D对象之一。在这篇攻略中,我们将详细讲解Mesh对象的属性与方法,帮助您更好地使用Three.js创建出令人惊叹的3D交互页面。 Mesh的基本构造函数 Mesh对象是由几何体Geometry和材质Material组成的。创建Mesh对象的基本构造函数如下所示: Mesh(ge…

    JavaScript 2023年6月10日
    00
  • JavaScript变量or循环中的var和let详解

    下面是JavaScript变量和循环中的var和let的详细攻略。 JavaScript变量 JavaScript中的变量使用var关键字来声明。每个变量都有一个特定的范围,称为作用域。一个变量可用的作用域由声明变量的方式所决定。若没有用var关键字声明变量,会将变量当作全局变量来处理,而这种情况是需要尽量避免的。 var关键字的用法 var关键字用来声明一…

    JavaScript 2023年6月10日
    00
  • JavaScript用200行代码制作打飞机小游戏实例

    这篇攻略将详细讲解如何使用 JavaScript 用 200 行代码制作一个简单的打飞机小游戏。我们将会使用 HTML5 Canvas 作为游戏画布,并构建游戏的逻辑和基本元素。整个游戏的框架代码只需要不到 200 行,但你可以根据需要自行扩展其功能。 1. 创建 HTML 画布 首先,在 HTML 代码中创建一个 Canvas 画布,并使用 CSS 样式设…

    JavaScript 2023年5月27日
    00
  • javascript insertAfter()定义与用法示例

    JavaScript中的insertAfter()方法是用于在指定的节点后面插入新元素的函数。它可以帮助实现对DOM节点的动态操作,非常实用。以下是完整的介绍及示例。 insertAfter()方法的定义 以下是insertAfter()方法的定义示例(假设将其封装在一个函数中): function insertAfter(newNode, referenc…

    JavaScript 2023年5月28日
    00
  • JS截取字符串的三种方法详解

    JS截取字符串的三种方法详解 在开发中,我们经常需要对字符串进行处理,其中截取字符串是一种比较常用的操作。在JavaScript中,我们通过以下三种方式来截取字符串: 使用String对象自带的slice()方法。 使用String对象自带的substring()方法。 使用String对象自带的substr()方法。 接下来,我们将详细讲解以上三种方法的使…

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部