哪种方法可以更好地了解Java脚本中的变量类型

这个问题在这里已经有了答案:

  • 检查对象是否是数组? 38个答案
  • instanceof和构造函数属性的区别1回答

  • 查看Array.isArray()函数:

    Array.isArray(a);
    

    if(typeof a === 'object' && Array.isArray(a)) {
        //its array
    }
    

    更新:差异

    var a = Object.create(Array.prototype);
    
    alert(a instanceof Array);                       //TRUE
    alert(a.constructor === Array);                  //TRUE  
    if (typeof a === 'object' && Array.isArray(a)) { //FALSE 
        alert(true);
    } 
    else {
        alert(false);
    }
    

    但是那么你呢

    var a = new Array();  // or var a = [];  etc
    
    alert(a instanceof Array);                       //TRUE
    alert(a.constructor === Array);                  //TRUE  
    if (typeof a === 'object' && Array.isArray(a)) { //TRUE 
        alert(true);
    } 
    else {
        alert(false);
    }
    

    在下面返回一个用户的变量类型

    typeof(a)
    
    链接地址: http://www.djcxy.com/p/27583.html

    上一篇: Which is a better way to know the type of a variable in Java Script

    下一篇: Are class and array really just an Object in JavaScript?