• JavaScript中Object.prototype.toString.call()、instanceOf和Array.isArray()的区别


    Object.prototype.toString.call()、instanceOf和Array.isArray()都可以用来判断一个值的类型,但是他们有一些区别。

    1. Object.prototype.toString.call() 该方法返回一个表示对象类型的字符串。可以使用这个方法来判断一个值的类型。示例代码如下:
    1. // 判断变量类型
    2. var myVar = null;
    3. console.log(Object.prototype.toString.call(myVar)); // [object Null]
    4. var myVar = {};
    5. console.log(Object.prototype.toString.call(myVar)); // [object Object]
    6. var myVar = [];
    7. console.log(Object.prototype.toString.call(myVar)); // [object Array]

    1. instanceof instanceof是用来检查一个对象是否是一个指定类型的实例,其返回值为一个布尔值。示例代码如下:
    1. var myVar = new Array();
    2. console.log(myVar instanceof Array); // true
    3. var myVar = new String();
    4. console.log(myVar instanceof String); // true
    5. var myVar = new Object();
    6. console.log(myVar instanceof Object); // true

    需要注意的是,instanceof不能用来判断基本数据类型的值。

    1. var myVar = 'hello';
    2. console.log(myVar instanceof String); // false

    1. Array.isArray() 该方法用来判断一个值是否为数组类型,其返回值为一个布尔值。示例代码如下:
    1. var myVar = [];
    2. console.log(Array.isArray(myVar)); // true
    3. var myVar = new Array();
    4. console.log(Array.isArray(myVar)); // true
    5. var myVar = {};
    6. console.log(Array.isArray(myVar)); // false

    需要注意的是,该方法只能判断一个值是否为数组类型。

  • 相关阅读:
    nginx 日志改为json格式
    如何进行需求分析评审
    docker下载镜像慢
    Docker入门
    抽象类和抽象方法
    智能车菜单编写(1)
    C++设计模式---观察者模式
    计算机毕业设计Java大学生学习时间规划平台小程序(源码+系统+mysql数据库+lw文档)
    快乐组队赛XD(2017 Chinese Multi-University Training, BeihangU Contest)
    Python-IO编程和异常
  • 原文地址:https://blog.csdn.net/m0_74801194/article/details/134685636