js的基本数据类型及其判断

基本的数据类型:

主要分为简单数据类型和复杂数据类型

简单的数据类型:Number、String、Boolean、null、undefined

复杂的数据类型:Arry、Object、Function

判断方法

简单的数据类型

typeof(所有的类型都可以用)

        // Number类型
        var num = 12;
        console.log(typeof num === 'number');
        // console.log(num instanceof Number);//不能判断
        //String类型
        var str = "fgbb";
        console.log(typeof str === 'string');
        // console.log(str instanceof String);//不能判断
        //Boolean类型
        var tag = true;
        console.log(typeof tag === 'boolean');
        //null
        var nu = null;
        console.log(typeof nu === 'object');
        //undefined
        var un;
        console.log(typeof un === 'undefined');

复杂的数据类型

Arry:
var arr = [1,2,3,4,5,6,7,8];
Object:
var obj = {
            name: "zs",
            age: 18
        }
Function:
function fn(){}
以下是上面三种复杂数据类型的分别判断
       // instanceof
        console.log(obj instanceof Object);
        console.log(arr instanceof Array);
        // __proto__
        console.log(arr.__proto__  === Array.prototype);
        console.log(obj.__proto__  === Object.prototype);
        console.log(fn.__proto__  === Function.prototype);
        console.log(Array.prototype.isPrototypeOf(arr));
        console.log(Object.prototype.isPrototypeOf(obj));
        console.log(Function.prototype.isPrototypeOf(fn));
        console.log(Object.getPrototypeOf(arr) === Array.prototype);  
        console.log(Object.getPrototypeOf(obj) === Object.prototype);  
        // console.log(Function.getPrototypeOf(fn) === Function.prototype);//不能判断是否为一个函数  
        // constructor
        console.log(arr.constructor === Array);
        console.log(obj.constructor === Object);
        console.log(fn.constructor === Function);
        // es6新增的判断数组的方法
        console.log(Array.isArray(arr));