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
  • 相关阅读:
    Tomcat临时目录及java.io.tmpdir对应的目录
    第一篇随笔
    面试
    近期小结-082714
    从头开始构建web前端应用——字符炸弹小游戏(一)
    web版ppt制作插件impress.js源码注释翻译
    .net web service Application_BeginRequest,记录请求数据
    微信APP支付,阿里云服务器,统一下单请求超时
    android仿ios圆弧边框背景
    google map 地址编码及反向地址编码
  • 原文地址:https://www.cnblogs.com/alicePanZ/p/4853428.html
Copyright © 2011-2022 走看看