美文网首页
[JavaScript基础]类型检测(ES5)

[JavaScript基础]类型检测(ES5)

作者: 向布谷鸟说早安 | 来源:发表于2019-03-07 22:35 被阅读5次

// 数据类型(6种)
number,boolean,string,null,undefined,object
1.typeof非引用类型的判断(7种)
string,object,number,boolean,function,undefined,typeerror
// typeof a;(typeerror)
// let a;

  1. instanceof引用类型的判断
    缺点:
    2.1 不能区分跨frame的Array类型
    2.2 不能检测某个对象是原生类型还是某个库定义的类型

  2. Object.prototype.toString.call()
    3.1 可以跨frame
    3.2 可以区分原生对象和非原生对象

  3. constructor引用类型的判断

应用:
判断类型:

        let class2type = {};
        'Boolean Number String Function Array Date RegExp Object Error'.split(' ')
            .map((item, index) => {
                class2type['[object ' + item + ']'] = item.toLowerCase();
            });
        
        function type(obj) {
           if(obj == null) {
               return obj + '';
           }
           return typeof obj === 'object' || typeof obj === 'function'?
           class2type[Object.prototype.toString.call(obj)] || 'object' : typeof obj;
        }

判断某个对象是否是window:

  function isWindow(obj)   
  { return obj != null && obj === obj.window }

判断某个对象是否是普通对象:

function isPlainObject(obj) {
  return obj && obj.window !== obj && 
    Object.getPrototypeOf(obj) === Object.prototype;
 }

判断某个对象是否是空对象:

function isEmpty(obj) {
  let name;
    for(name in obj) {
      return false
    }
    return true;
}

判断某个对象是否是类数组:


判断某个对象是否是数组:

function isArray(obj) {
  return type(obj) === 'array';
}

相关文章

  • [JavaScript基础]类型检测(ES5)

    // 数据类型(6种)number,boolean,string,null,undefined,object1.t...

  • Javascript 数据类型检测及原理

    前言 数据类型检测是 JavaScript 中既基础又考验原理的知识,如果你对 JavaScript 数据类型检测...

  • JavaScript类型检测

    参考视频:JavaScript类型检测-慕课网 可以用以下5种来进行类型检测 typeof 适用场景: 检测基础类...

  • 前端 js

    Javascript 基础语法包括:变量声明、数据类型、函数、控制语句、内置对象等。 在ES5 中,变量声明有两种...

  • 5-javascript基础

    javascript基础 javascript基础类型 基本数据类型:String,boolean,Number,...

  • JavaScript 类型检测

    JavaScript 类型检测 本文介绍JavaScript的几种类型检测的方法,以及其各自的适用范围。 Java...

  • JavaScript中的数据类型

    数据类型包括:基础类型和引用类型。 在ES5之前,基础类型有:Number,String ,Boolean, Un...

  • 数组去重

    基础类型数组去重 ES5 ES6 复杂类型数组去重 ES5 ES6

  • javascript如何检测一个数据是不是数组

    今天的学习任务是如何检测一个数据是不是数组?JavaScript中有基础数据类型和**类型。有Boolean,Nu...

  • JavaScript类型检测

    typeof 适合基本类型和函数类型,遇到null失效 instanceof 判断左边的原型链上是否有右边构造函数...

网友评论

      本文标题:[JavaScript基础]类型检测(ES5)

      本文链接:https://www.haomeiwen.com/subject/tkjfpqtx.html