typeof升级版,可以识别出array、object、null、nan、[]、{}

简介:

typeof 经常混淆array、object、null等,升级处理一下。
可以将这个函数放在common.js中使用。

function getTypeName(v) {
    var v_str = JSON.stringify(v);
    if (typeof v == 'object') {
        // 判断null
        if (v_str == 'null') {
            return 'null';
        }
        // 判断[]
        if (v_str.charAt(0) == '[') {
            return 'array';
        }

        // 判断{}
        if (v_str.charAt(0) == '{') {
            return 'object';
        }

        // 判断Date对象
        if (v instanceof Date) {
            return 'date';
        }

        // 其他...
        return 'other';
    } else if(typeof v == 'number') {
        // 判断NaN
        if (v_str == 'null') {
            return 'nan';
        }
        return typeof v;
    } else {
       return typeof v;
    }
}

var a = 0;
var b = "";
var c = null;
var d = false;
var e = function () {};
var f = [];
var g = {};
var h;
var i = new Array();
var j = new Object();
var k = new Date();
var l = NaN;
console.log(getTypeName(a)); // number
console.log(getTypeName(b)); // string
console.log(getTypeName(c)); // null
console.log(getTypeName(d)); // boolean
console.log(getTypeName(e)); // function
console.log(getTypeName(f)); // array
console.log(getTypeName(g)); // object
console.log(getTypeName(h)); // undefined
console.log(getTypeName(i)); // array
console.log(getTypeName(j)); // object
console.log(getTypeName(k)); // date
console.log(getTypeName(l)); // nan


本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/6189221.html,如需转载请自行联系原作者

相关文章
|
6月前
|
JavaScript 前端开发 程序员
分享18个用于处理 null、NaN 和undefined 的 JS 代码片段
Null、NaN 和 undefined 是程序员在使用 JavaScript 时遇到的常见值。 有效处理这些值对于确保代码的稳定性和可靠性至关重要。
|
5月前
|
JavaScript 前端开发
为什么typeof null 是object
为什么typeof null 是object
|
2月前
|
机器学习/深度学习 JavaScript 前端开发
JavaScript typeof, null, 和 undefined
JavaScript typeof, null, 和 undefined
53 4
|
2月前
|
存储 JavaScript 前端开发
JS篇(Array、Object)
JS篇(Array、Object)
17 1
|
3月前
|
存储 关系型数据库 MySQL
|
6月前
|
JavaScript
Vue报错 Invalid default value for prop “list“: Props with type Object/Array must use a factory
Vue报错 Invalid default value for prop “list“: Props with type Object/Array must use a factory
316 0
定义好变量,${age}模版字符串,对象可以放null,检验数据类型console.log(typeof str)
定义好变量,${age}模版字符串,对象可以放null,检验数据类型console.log(typeof str)
|
6月前
|
PHP
Trying to access array offset on value of type null
你就可以避免在null值上尝试访问数组偏移量的错误。 总的来说,当你遇到这个错误时,你应该回顾你的代码,确保在尝试访问数组偏移量之前,相关的变量已经被正确地初始化为一个数组,并且不是null。
1652 4
|
6月前
Object.prototype.toString.call() 和 instanceOf 和 Array.isArray() 区别以及优缺点
Object.prototype.toString.call() 和 instanceOf 和 Array.isArray() 区别以及优缺点
46 0
|
6月前
|
JavaScript 前端开发
JavaScript中Object.prototype.toString.call()、instanceOf和Array.isArray()的区别
JavaScript中Object.prototype.toString.call()、instanceOf和Array.isArray()的区别
75 1