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

javascript 中检测数据类型的方法的更多相关文章

  1. 在javaScript中检测数据类型的几种方式

    类型检测的方法 typeof instanceof Object.protype.toString constructor duck type:鸭子类型 typeof 返回一个字符串,适合函数对象和基 ...

  2. JavaScript 中的数据类型

    Javascript中的数据类型有以下几种情况: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Function,Date,Ar ...

  3. javaScript中的数据类型

    一.综述 javaScript中的数据类型分为两类: 简单类型:Boolean,Number,String 引用类型:Object 其他:undefined代表变量没有初始化,null代表引用类型为空 ...

  4. 【译】Javascript中的数据类型

    这篇文章通过四种方式获取Javascript中的数据类型:通过隐藏的内置[[Class]]属性:通过typeof运算符:通过instanceof运算符:通过函数Array.isArray().我们也会 ...

  5. Javascript中数组的判断方法

    摘要: 1.数组检测的方法: 1) typeof . 2) instanceof . 3) constructor . 4) Object.prototype.toString. 5) Array.i ...

  6. 面试说:聊聊JavaScript中的数据类型

    前言 请讲下 JavaScript 中的数据类型? 前端面试中,估计大家都被这么问过. 答:Javascript 中的数据类型包括原始类型和引用类型.其中原始类型包括 null.undefined.b ...

  7. JavaScript中判断对象类型方法大全1

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

  8. Javascript中的数据类型之旅

    虽然Javascript是弱类型语言,但是,它也有自己的几种数据类型,分别是:Number.String.Boolean.Object.Udefined.Null.其中,Object属于复杂数据类型, ...

  9. 鉴定JavaScript中的数据类型

    众所周知,JavaScript是一门弱类型的语言,但是这并不代表JavaScript中没有数据类型.JavaScript中常见的数据类型有string.number.object等等,通常我们使用ty ...

随机推荐

  1. elasticsearch6 学习之并发控制

    环境:elasticsearch6.1.2        kibana6.1.2  并发问题无处不在 一.基于_version 的并发控制 在提交数据前先检查提交数据的version与es中存储的ve ...

  2. JVM内存模型一

    JVM定义了若干个程序执行期间使用的数据区域.这个区域里的一些数据在JVM启动的时候创建,在JVM退出的时候销毁.而其他的数据依赖于每一个线程,在线程创建时创建,在线程退出时销毁. 程序计数器 程序计 ...

  3. bootstrap栅格系统错位问题

    在项目中div可以设置属性class=“col-size-x” //size取值为xs,sm,md,lg:x取值为1-12 可以让此div占据本行的 x/12 .col-xs- 超小屏幕 手机 (&l ...

  4. python模拟浏览器爬取数据

    爬虫新手大坑:爬取数据的时候一定要设置header伪装成浏览器!!!! 在爬取某财经网站数据时由于没有设置Header信息,直接被封掉了ip 后来设置了Accept.Connection.User-A ...

  5. Oracle 修改dmp的表空间

    1.百度下载  UltraEdit 并安装 2.打开程序,文件-->打开-->找到dmp  文件太大会提示,选择第一个默认,确定 3.按CTRL+H 转成十六进制编辑 4.例如:dmp里面 ...

  6. [洛谷P4091][HEOI2016/TJOI2016]求和

    题目大意:给你$n(n\leqslant10^5)$,求:$$\sum\limits_{i=0}^n\sum\limits_{j=0}^i\begin{Bmatrix}i\\j\end{Bmatrix ...

  7. 【BZOJ5334】数学计算(线段树)

    [BZOJ5334]数学计算(线段树) 题面 BZOJ 洛谷 题解 简单的线段树模板题??? 咕咕咕. #include<iostream> #include<cstdio> ...

  8. P3320 [SDOI2015]寻宝游戏 解题报告

    P3320 [SDOI2015]寻宝游戏 题目描述 小B最近正在玩一个寻宝游戏,这个游戏的地图中有\(N\)个村庄和\(N-1\)条道路,并且任何两个村庄之间有且仅有一条路径可达.游戏开始时,玩家可以 ...

  9. 洛谷 P4009 汽车加油行驶问题 解题报告

    P4009 汽车加油行驶问题 题目描述 给定一个\(N×N\)的方形网格,设其左上角为起点◎,坐标(1,1) ,\(X\)轴向右为正,\(Y\)轴向下为正,每个方格边长为1 ,如图所示. 一辆汽车从起 ...

  10. eclipse 安装 activiti-designer-5.18.0,亲测成功

    转: eclipse 安装 activiti-designer-5.18.0,亲测成功 2018年06月02日 15:50:05 ldw4033 阅读数:2826   版权声明:本文为博主原创文章,未 ...