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日

相关文章

  • jQWidgets jqxGrid可编辑属性

    以下是关于“jQWidgets jqxGrid可编辑属性”的完整攻略,包含两个示例说明: 简介 jqxGrid 控件的 editable 属性用于设置表格是否可编辑。 完整攻略 以下是 jqxGrid 控件 editable 属性的完整攻略: 定义 editable 在 jqxGrid 控件中,使用 editable 属性设置表格是否可编辑。例如: $(&q…

    jquery 2023年5月11日
    00
  • jQWidgets jqxComboBox unselectItem()方法

    以下是关于“jQWidgets jqxComboBox unselectItem()方法”的完整攻略,包含两个示例说明: 简介 jqxComboBox 控件提供 unselectItem() 方法,该方法用于取消下拉列表中指定选项的选中状态。通过 unselectItem() 方法,可以在代码中动态取消选择下拉列表的选项。 详细攻略 以下是 jqxCombo…

    jquery 2023年5月11日
    00
  • jQuery UI draggable stop事件

    以下是关于 jQuery UI 的 Draggable stop 事件的详细攻略: jQuery UI Draggable stop 事件 stop 事件在可拖动元素停止移动时触发。可以使用该事件来执行一些操作,例如更新元素的位置或执行其他操作。 语法 $(selector).draggable({ stop: function(event, ui) { /…

    jquery 2023年5月11日
    00
  • jQuery wrapInner()的应用实例

    下面我将为你详细讲解“jQuery wrapInner()的应用实例”的完整攻略。 什么是jQuery wrapInner()? jQuery wrapInner() 方法用于在匹配的元素内部的子元素周围包裹一个HTML元素或一个已经存在的HTML元素。 jQuery wrapInner() 方法的语法 $(selector).wrapInner(wrapp…

    jquery 2023年5月13日
    00
  • jQWidgets jqxBarGauge refresh()方法

    jQWidgets jqxBarGauge refresh()方法 jQWidgets是一个基于jQuery的UI组件库,提供了丰富的UI件和工具,包括表格、图表单、历、菜单等。jqBarGauge是jQWidgets中的一个组件,可以用于水平或垂直的条形图。jqBarGauge提供了refresh()方法,用于刷新条形图。 refresh()方法的基本语法…

    jquery 2023年5月9日
    00
  • jQWidgets jqxListBox宽度属性

    jQWidgets jqxListBox宽度属性详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。ListBox是其中之一。本文将详细介绍jqxListBox的width属性,包括定义、语法和示例。 width属性的定义 jqxListBox的width属性用于设置列表框的宽度。通过使用width属性,可以在代码中设置列表…

    jquery 2023年5月10日
    00
  • jquery插件jquery.confirm弹出确认消息

    下面是关于”jquery插件jquery.confirm弹出确认消息”的完整攻略。 一、jquery.confirm插件介绍 jquery.confirm是一款基于jQuery的插件,用于在网站中展示确认消息。该插件可以轻松地创建美观的对话框以及自定义对话框的内容、按钮和样式。使用该插件可以在用户删除数据或做出其他与操作相关的决定时,提供强大的可视化反馈。 …

    jquery 2023年5月28日
    00
  • JQuery datepicker 使用方法

    JQuery datepicker 是一个十分常用的日期选择器插件,可以帮助我们快速开发出属于自己的日期选择器功能。下面是根据官方文档和个人实践总结的使用方法攻略: 一、引入JQuery 和 datepicker插件文件 <head> <link rel="stylesheet" href="//code.jq…

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