zoukankan      html  css  js  c++  java
  • 判断数据类型的方法

    数据类型

    • 值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol(es6引入)。
    • 引用数据类型:对象(Object)、数组(Array)、函数(Function)。

    判断数据类型的方法

    • typeof:主要用于检测基本数据类型,判断引用类型时只能区分object,undefined和function

      typeof的返回值有哪些:
      1. undefined  // 声明和未初始化的变量,使用typeof都会返回Undefined
      2. boolean
      3. string
      4. number
      5. object  // 当是object、null、array时
      6. function // 函数是对象,不是一种数据类型,因为特殊,typeof把它从对象中区分出来。typeof 正则也返回function)
      
    • instanceof:主要用于引用数据类型的检测,判断同一个作用域下,一个对象/类是否是另一个对象/类的实例。会一直递归到最终原型。基本数据类型没有父类型,都会返回false

    变量是给定引用类型的实例,instanceof操作符就会返回true,例如:

    person instanceof Object  
    arr instanceof Array  
    pattern instanceof RegExp  
    

    ps:intanceof是检测某一个类型是否是目标的超类(父类或者祖先类)

    • Object.prototype上的原生toString():可以用于检测基本和引用数据类型,任何值上调用Object原生的toString方法,都会返回一个[object objectNativeConstrucName]格式的字符串,通过这种方法来判断变量的数据类型。
      例如:
    //返回[object Undefined]
    //call在这里用于绑定this
    Object.prototype.toString.call(undefined) 
    

    经典问题:
    判断一个对象是不是数组:

    value instanceof Array
    Array.isArray(value)
    Object.prototype.toString.call(value) // [object Array]
    
  • 相关阅读:
    SQL Functions
    wse 3.0
    mvc2 在 .net 4 下的ValidateInput(false) 无效
    FF3.0 不可以post空
    也谈.NET MVC 2 + ExtJS的部署问题
    ExtJs懒人笔记(2) ExtJs页面布局
    关于算法—— 一维字符串数组之间组合问题的C#实现
    (转)在ASP.NET 中实现单点登录(利用Cache, 将用户信息保存在服务器缓存中)
    XML中配置正则表达式的写法
    .NET MVC 下实现消息推送
  • 原文地址:https://www.cnblogs.com/ggymx/p/12564869.html
Copyright © 2011-2022 走看看