js 数据类型检测

5种基本数据类型:Undefined、Null、Boolean、Number和String。
1中复杂数据类型:Object函数

使用typeof检测

typeof操做符返回一个字符串,表示未经求值的操做数的类型。prototype

typeof可能的返回值:code

  • "undefined"——若是这个值未定义;对象

  • "boolean"——若是这个值是布尔值;字符串

  • "string"——若是这个值是字符串;string

  • "number"——若是这个值是数值;io

  • "object"——若是这个值是对象或 null;console

  • "function"——若是这个值是函数。function

注意事项:
typeof null 返回 object。
typeof 是一个操做符而不是函数,圆括号尽管能够使用,但不是必需的。
//typeof str 或者 typeof(str) 都可以object

使用instanceof检测

用来检测引用类型:知道一个值是什么类型的对象。返回true/false。

全部引用类型的值都是 Object 的实例。

  • 若是使用 instanceof 操做符检测基本类型的值,则该操做符始终会返回 false,由于基本类型不是对象。可是使用new关键字构造基本数据的包装对象的实例时instanceof操做符也会返回true。(instanceof只适用于构造函数建立返回的复杂对象和实例。)

  • 用instanceof检测undefined和null是否是Object实例时,返回false。

function Person(){}
    function Student(){}
    Student.prototype = new Person();
    var John = new Student();
    console.log(John instanceof Student); // true
    console.log(John instancdof Person);  // true
    console.log(John instancdof Object);  // true
    var a;
    
    
    用instanceof检测undefined和null是否是Object实例时,返回false。
    typeof a;    //"undefined"
    a instanceof Object;  //false
    var b = null;    
    typeof b;    //"object"
    b instanceof Object;    //false

使用constructor检测

相关文章
相关标签/搜索