zoukankan      html  css  js  c++  java
  • 数据类型检测的四种方式

    /*typeof:检测数据类型的运算符
    返回的都是一个字符串
    类型:number string boolean undefined function object*/
    console.log(typeof 12);
    console.log(typeof "14");
    console.log(typeof undefined);
    console.log(typeof function text(){});
    console.log(typeof null);//空对象指针
    /*instanceof:检测实例是否属于某一个类
    只要在原型链上,结果都为true
    局限性:原型链*/
    console.log(1 instanceof Number);//f
    console.log(new Number(1) instanceof Number);//t

    /*constructor:构造函数
    基本数据类型的可以检测
    局限性:原型如果被重写,检测的结果很不准确*/
    var num=1;
    console.log(num.constructor==Number);
    function Fn(){

    }
    Fn.prototype=new Array();
    //Fn.prototype.constructor=Fn;
    var f=new Fn();
    console.log(f.constructor);
    console.log(Object.prototype.toString.call(f.constructor));
    console.log('---------');
    /*null undefined他们所属类是Null和Undefined*/
    /*Object:函数数据类型(in hasPrototyOf)
    最准确的检测方式*/
    //toString专题
    //Object.prototype.toString();
    console.log(typeof (1).toString());
    //Number.prototype.toString 字符串
    console.log((1).__proto__.__proto__.toString());
    console.log(Object.prototype.toString.call(1));
    console.log({}.toString.call(1));
    //Object.prototype.toString => [object Object]
    //Math,Object的toString当前方法的执行主体(this)所属类的执行信息=>[object Object] [object Math]
    var obj={name:'qiqi'};
    console.log(obj.toString());
    /*[object Object] 第一个object是当前实例是对象数据类型的,第二个Object是obj所属类是Object*/
    console.log(Math.toString());//=>"[object Math]";

  • 相关阅读:
    如何判断DataSet里有多少个DataTable
    ADO.NET五大对象详解
    c# 中的封装、继承、多态详解
    什么是递归算法
    反射是什么
    什么是泛型
    方法中参数的类型详细
    Struts2学习笔记二 配置详解
    Struts2学习笔记一 简介及入门程序
    Hibernate学习笔记四 查询
  • 原文地址:https://www.cnblogs.com/qiqi105/p/8297894.html
Copyright © 2011-2022 走看看