zoukankan      html  css  js  c++  java
  • Javascript的基本数据类型和判断

      ECMAScript中有6种简单数据类型:Undefined,Null,Boolea,Number,String和Object,这些都是一些基本知识,有意思在后面 

     用javascript里的typeof检测一下这6个数据类型你会有新发现 

      “undefined”    ----------   如果值未定义                       Undefined

      “boolean”      ----------     如果这个值是布尔值              Boolean

      “string”        ----------     如果这个值是字符串              String

      “number”      ----------     如果这个值是数值类型           Number

      “object”        ----------     如果这个值是对象或null         Object

      “function”       ----------     如果这个值是函数               Function

     但有的时候typeof是不靠谱的,

    例如我们这样声明一个变量:

    var str=new String('aaa');
    
    alert(typeof str);
    
    
    var iS=new Number('123');
    
    alert(typeof iS);

    返回的都是object,没有返回string和number.typeof在这里失败了,现在得请出另一位选手 instanceof , instanceof的意思是XXX是XXX的实例.

    上代码:

    var str=new String('aaa');
    
    alert(str instanceof String);
    
    
    var iS=new Number('123');
    
    alert(iS instanceof Number);
    

    这样返回的都是true;在这样的声明方式下我们就能判断JS的基本数据类型了;

    但是instanceof判断var str='abc'这样的声明返回的是false;所以兼容的写法是 (typeof str== String) || (str instanceof String);

    这样只要一个对了就可以了;

    例外还有2种判断JS数据类型的方法

    一个是利用面向对象中的constructor

    var str='123';
    
    var str1=new String('abc');
    
    alert(str.constructor== String);

    alert(str1.constructor== String);

    返回的都是true;这样就不用写上面那么麻烦了.

    第二种是利用JS基本对象属性里的toString方法,这个方法默认返回数据类型的class

    var str='123';
    
    var str1=new String('abc');
    
    alert(Object.prototype.toString.call(str)=='[object String]');
    
    alert(Object.prototype.toString.call(str1)=='[object String]');
    

    返回的都是true.就是代码写的有点多,不过可以清楚的判断数据的基本类型了.

    不像typeof和instanceof那样某一方面不靠谱.  

      

      

      

  • 相关阅读:
    Redis进阶实践之一VMWare Pro虚拟机安装和Linux系统的安装
    HTTP常见面试题
    HBase WAL原理学习
    HBase TableExistsException: hbase:namespace
    HBase常用操作之namespace
    Hbase原理、基本概念、基本架构
    hbase 修复 hbase hbck
    hbase数据备份或者容灾方案
    Hbase 日常运维
    HBase shell scan 模糊查询
  • 原文地址:https://www.cnblogs.com/newljc/p/3728861.html
Copyright © 2011-2022 走看看