zoukankan      html  css  js  c++  java
  • javascript 中检测数据类型的方法

    typeof 检测数据类型

    javascript 中检测数据类型有好几种,其中最简单的一种是 typeof 方式。typeof 方法返回的结果是一个字符串。typeof 的用法如下:

      typeof value;

    typeof 返回的结果有以下几个:"boolean","string","object","undefined","number";

    下面是一些示例代码:

    var str = "alice";
    console.log(typeof str);//返回结果是 "string"
    var flag = true;
    console.log(typeof flag);//返回结果是 "boolean"
    var count = 1;
    console.log(typeof count);//返回结果是 "number"
    var undefinedValue = undefined;
    console.log(undefinedValue); //返回结果是 "undefined"
    var nullValue = null;
    console.log( typeof nullValue);//返回结果 "object"
    console.log(typeof []);//返回结果 “object”
    console.log(typeof /^1$/);//返回结果 "object"

     示例代码中我们发现,使用 typeof 方法并不能知道一个对象的具体类型。如: typoef [] 和 typeof /^1$/ 返回的结果都是 object,并不能知道两者一个数组,一个是个正则,也就是不知道一个对象具体是什么类型的对象。

     instanceof 检测数据类型

     为此,javascript 提供了 instanceof 操作符,其语法结构如下:

      var result =  value instanceof constructor;【注意:这里 constructo 代指的是某个构造函数】

      返回结果是一个布尔值。如果结果 true,表示 value 是由 构造函数 constructor 创建,false 则表示 value 不是由构造函数 constructor 创建。

    下面是示例代码:l 

    console.log([] instanceof Array);//true
    console.log( {} instanceof Object);//true
    console.log(/^1$/ instanceof RegExp);//true

     同时,instanceof 检测继承类型,只要检测的类型在数据的原型链上,结果都会返回 true;比如:

      

    function Animal() {}
    
    function Dog(name) {
        this.name = name;
    }
    Dog.prototype = new Animal;
    Dog.prototype.type = "dog";
    Dog.prototype.constructor = Dog;
    var dog = new Dog('donald');
    console.log(dog instanceof Dog);//true
    console.log(dog instanceof Animal);//true  Animal 的原型在 dog 的原型链上,所以返回结果也为 true
  • 相关阅读:
    VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)转
    转载 获取管理员权限
    Linux端图形处理工具ImageMagick在Centos上的安装
    JQUERY 的AJAX只执行一次问题
    ASP.NET项目常见错误信息:HRESULT:0x800736B1
    存储过程(我们简称SP)的编写和优化
    sql server中扩展存储过程大全
    Range对象基本操作应用示例(2)
    让IIS支持DZ和PW的伪静态方法
    js日期时间函数(经典+完善+实用)
  • 原文地址:https://www.cnblogs.com/alicePanZ/p/4853428.html
Copyright © 2011-2022 走看看