码迷,mamicode.com
首页 > 编程语言 > 详细

javascript toString数据类型检测

时间:2015-07-15 18:42:31      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

一、typeof 是一个一元运算符。检测数据类型,返回一个字符串,包含数据类型信息。例如:“number,string,undefined”

  局限性:

  1、typeof null ===》 “object”

  2、typeof []  ===>  "object"

     不能具体检测对象数据类型的细分项(数组、正则...)

二、instanceof 检测某一个实例是否属于这个类

  var ary = [1,2,3,4];

  ary instanceof Array   //如果true,说明ary是Array的一个实例,也就ary是一个数组。反之,返回false则不是一个数组。

  ary.constructor == Array  //通过constructor

  局限性:

  在关于类之间通过原型链的方式实现继承的时候,我们instanceof检测出来的结果不准确。例如:下面的代码:

function Fn(){}
Fn.prototype = new Array;    //Fn继承Array类
var f = new Fn();
console.log(f instanceof Array);  //true
console.log(f.constructor);     //Array

三、toString检测数据类型的原理:执行Object原型上的toString,让这个方法中的this变为我们要检测的那个值,就是实现数据类型的检测

    

//toString检测数据类型的原理:执行Object原型上的toString方法,让这个方法中的this变为我们要检测的那个值,就是实现了我们的数据类型检测
// Object.prototype.toString = function () {
// return "[object "+this.constructor+"]";
// }

var num = 1;
console.log(Object.prototype.toString.call(num));
console.log({}.toString.call([]));

  

 

javascript toString数据类型检测

标签:

原文地址:http://www.cnblogs.com/dollarzhang/p/4648965.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!