zoukankan      html  css  js  c++  java
  • javascript 判断数据类型


    Object.prototype.toString.call(asddfff) //报错asddfff没被定义
    Object.prototype.toString.call(undefined) //"[object Undefined]"
    Object.prototype.toString.call(function a(){}) //"[object Function]"
    Object.prototype.toString.call(123) //"[object Number]"
    Object.prototype.toString.call('') //"[object String]"
    Object.prototype.toString.call() //"[object Undefined]"
    Object.prototype.toString.call(null) //"[object Null]"
    Object.prototype.toString.call([]) //"[object Array]"
    Object.prototype.toString.call({}) //"[object Object]"
    问题是:未定义的会报错(可以忽略,因为一般未定义的也不会随便拿来判断)

    typeof null // "object"
    typeof assssssaz //"undefined"
    typeof undefined //"undefined"
    typeof '' //"string"
    typeof 123 //"number"
    typeof function(){} //"function"
    typeof [] //"object"
    typeof {} //"object"
    问题是:array和null会被判断成Object。好处是:无论哪种都不会报错。

    (function a(){}) instanceof Function //true
    [] instanceof Array //true
    ({a:11}) instanceof Object //true
    123 instanceof Number //false
    '' instanceof String //false
    aaaaxsas instanceof Null //直接报错
    aaaaxsas instanceof undefined //直接报错
    问题是:这个用起来问题比较多,只能用于复杂类型的判断,不能用于基本类型的判断,未定义的变量直接报错。

  • 相关阅读:
    [bzoj1076]奖励关
    [bzoj1085]骑士精神
    [bzoj1082]栅栏
    [bzoj1084]最大子矩阵
    [bzoj1072]排列
    [bzoj1071]组队
    [bzoj1068]压缩
    [bzoj1061]志愿者招募
    [bzoj1059]矩阵游戏
    [bzoj1052]覆盖问题
  • 原文地址:https://www.cnblogs.com/wulinzi/p/10396257.html
Copyright © 2011-2022 走看看