当前位置:首页 > 开发 > Web前端 > JavaScript > 正文

javascript 类型检测

发表于: 2015-11-13   作者:互联网   来源:转载   浏览次数:
摘要:   javascript数据类型分为简单数据类型和复杂数据类型。简单数据类型分为string,number,boolean,defined,null,复杂数据类型为Object.类型检测在写代码可能会非常有用,下面是我对类型检查的一些探索。 用typeof检测: var str = '123'; var num = 2; var boo = true; var def = undefi

  javascript数据类型分为简单数据类型和复杂数据类型。简单数据类型分为string,number,boolean,defined,null,复杂数据类型为Object.类型检测在写代码可能会非常有用,下面是我对类型检查的一些探索。

用typeof检测:

var str = '123';

var num = 2;

var boo = true;

var def = undefined;

var nu = null;

var o = new Object();

var fn = function(){

var h =hello;

}

var arr = [];

var ob = Object;



typeof str //string

typeof num //number

typeof boo //boolean

typeof def //undefined

typeof nu //object

typeof o //object

console.log(typeof fn); //function

console.log(typeof arr); //object

console.log(typeof ob); //function

typeof在检测基本数据类型的时候看起来得心应手,但是在检测引用类型值时,通常它的作用不是很大。因为有时候我们不仅仅需要知道某个值是引用类型,更需要知道是什么引用类型

而typeof在检测引用类型的不可预测性。为此ecmascript提供了instanceof操作符。

用instanceof检测:

语法规则:result = variable instanceof contructor  通过原型链来进行识别

console.log(person instanceof Array);

console.log(colors instanceof Object);

console.log(patten instanceof RegExp);

由于所有引用类型的值都是Obejct的实例,大家可以看看这篇文章来学习一下原型链,所以instanceof在检测引用类型方面也不是非常安全。

 用Object.prototype.toString()判断:

根据一些框架的源码的判断方法

function isFunction(it){

    return Object.prototype.toString.call(it) === '[object Function]';

}

function isArray(it){

    return Object.prototype.toString.call(it) === '[object Array]';

}    

 

javascript 类型检测

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
[尊重原创,转载地址:http://www.cnblogs.com/fool/archive/2010/10/07/javascrpt.html] 开门见山
STUN(Simple Transversal of UDP through NATs)[21]是RFC3489 规定的一种NAT 穿透方式,它采用辅助
题外:iteye真够垃圾,每天只许发五篇文章,怕什么spam,垃圾。 检测用户的按键是事件处理程序的一
题外:iteye真够垃圾,每天只许发五篇文章,怕什么spam,垃圾。 检测用户的按键是事件处理程序的一
Javascript (ECMA Script)是一种弱类型的语言。这并不意味着它没有数据类型,只是变量或者Javascrip
Javascript (ECMA Script)是一种弱类型的语言。这并不意味着它没有数据类型,只是变量或者Javascrip
JavaScript的类型转换 By 大志若愚 (一)转换为字符串   X + ''   toString()   String()  
JavaScript基本类型 一.布尔型 二.字符串型 三.数值型 四.函数 附源代码: 1.布尔型 <!DOCT
1. 在 ECMAScript 中,变量可以存储两种类型的值,即原始值和引用值。原始值存储在栈(Stack)中的简
1. ECMAScript 的 Boolean 值、数字和字符串的原始值都是为对象,这意味着实际上它们有属性和方法。
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号