instanceof和typeof运算符的区别详解

instanceof 和 typeof 运算符的区别详解

在 JavaScript 中,instanceoftypeof 都是用于判断变量类型的运算符,但它们的使用场景和结果判断方式却有很大的不同。

typeof 运算符

typeof 运算符返回一个用于表示变量类型的字符串。它的语法如下:

typeof operand

其中 operand 是用于进行类型判断的操作数。typeof 运算符的返回结果有以下几种:

  • "undefined"undefined 类型的变量;
  • "boolean"boolean 类型的变量;
  • "number"number 类型的变量;
  • "string"string 类型的变量;
  • "symbol"symbol 类型的变量;
  • "function"function 类型的变量;
  • "object"null 或其他对象类型的变量。

需要注意的是,typeof null 返回的是 "object",这是一种历史遗留问题。

以下是几个 typeof 运算符的示例:

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

从上述结果可以看出,typeof 运算符一般用于判断基本数据类型和 function 类型。

instanceof 运算符

instanceof 运算符用来判断一个对象是否为某个类的实例。它的语法如下:

object instanceof constructor

其中 object 是要进行实例判断的对象,constructor 是用来判断的构造函数。

判断结果为布尔值,如果 objectconstructor 的实例,那么 instanceof 返回 true,否则返回 false

以下是几个 instanceof 运算符的示例:

var o = {};
var a = [];
var n = 123;
var s = 'abc';

o instanceof Object;    // true
a instanceof Array;     // true
n instanceof Number;    // false:因为 Number(n) 返回的是一个基本类型值
s instanceof String;    // false:因为 String(s) 返回的是一个基本类型值

上述示例中,oObject 的实例,因此 o instanceof Object 返回 true;而 ns 分别是 NumberString 类型的变量,通过 Number(n)String(s) 转换成了基本类型,因此 n instanceof Numbers instanceof String 都返回了 false

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:instanceof和typeof运算符的区别详解 - Python技术站

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

相关文章

  • JS实现黑客帝国文字下落效果

    黑客帝国文字下落效果是一种很有趣的视觉效果,许多网站都在使用它来增加页面美感。本文将详细讲解如何用JavaScript实现这一效果。 实现思路 实现黑客帝国文字下落效果的核心思路是: 利用Canvas绘制出需要显示的字符; 在Canvas中创建一个文本标签对象,每隔一段时间将字符的位置向下移动一定的距离,同时在上部添加新的字符; 当文本标签移动到Canvas…

    jquery 2023年5月27日
    00
  • jQuery移动页面closeBtn选项

    jQuery Mobile是一种基于jQuery库的移动Web应用程序框架。它提供了大量的界面组件和用于构建响应式Web应用程序的工具。closeBtn选项是其中之一,它定义弹出式对话框右上角显示或隐藏关闭按钮的方式。 closeBtn选项语法 closeBtn: boolean|string 该选项的值可以是以下两种类型之一: 布尔值:如果设置为false…

    jquery 2023年5月12日
    00
  • jQuery closest()与实例

    以下是关于jQuery中closest()方法的完整攻略: 什么是closest()方法? closest()方法是jQuery中的一个方法,用于查找匹配元素集合中每个元素的最近的祖先元素,该祖先元素满足指定的选择器。 如何使用closest()方法? 使用以下代码来使用closest()方法: $(selector).closest(filter) 其中,…

    jquery 2023年5月12日
    00
  • 用jquery与css打造个性化的单选框和复选框

    接下来我会详细讲解用jquery与css打造个性化的单选框和复选框的完整攻略。 简介 传统的HTML单选框和复选框样式固定、不易修改,但我们可以通过jquery和css来制作个性化的单选框和复选框。 原理 隐藏原生单选框或复选框 通过样式设置伪装的选中状态 监听点击事件,通过jquery代码控制真实单选框或复选框的选中状态 单选框 HTML 假设我们有一个基…

    jquery 2023年5月18日
    00
  • jquery实现下载图片功能

    当用户在页面上点击下载图片的按钮时,我们执行一段JavaScript代码,使用 jQuery 来下载一张图片。具体流程如下: 为下载图片的按钮绑定一个点击事件 这里我们可以用 jQuery 的on()函数来实现,如下所示: $(‘#downloadBtn’).on(‘click’, function() { // 此处后续代码实现 }); 利用 JavaSc…

    jquery 2023年5月27日
    00
  • jQWidgets jqxResponsivePanel animationHideDelay属性

    让我来详细讲解一下“jQWidgets jqxResponsivePanel animationHideDelay属性”的相关信息。 什么是jqxResponsivePanel? jqxResponsivePanel是jQWidgets中封装的一个响应式面板组件,该组件可以快速为你的web页面添加响应式导航功能,从而使你的页面更加适配手机和平板等设备。 an…

    jquery 2023年5月11日
    00
  • jQWidgets jqxGauge RadialGauge ticksMajor属性

    jQWidgets 是一个流行的 JavaScript UI 库,提供了许多可定制的 UI 组件。其中一个组件是 jqxGauge,它是一个用于显示表盘的控件。jqxGauge提供多个属性,其中之一是 ticksMajor。下面是关于 jqxGauge 的 ticksMajor 属性的详攻略: ticksMajor 属性概述 ticksMajor 属性用于设…

    jquery 2023年5月11日
    00
  • JS对象转换为Jquery对象实现代码

    要将JS对象转换为jQuery对象,可以使用jQuery()或$()函数,根据传入的参数不同,可以实现多种转换方式。 将DOM元素转换为jQuery对象 要将DOM元素转换为jQuery对象,只需将DOM元素作为参数传递给jQuery()或$()函数即可。 var domElement = document.getElementById("myDi…

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