在javascript中检测变量类型的方法有哪些

 我来答
百度网友94777f9
2017-03-02 · 超过10用户采纳过TA的回答
知道答主
回答量:20
采纳率:0%
帮助的人:7万
展开全部

1. typeof

<script>
    typeof 2 //输出 number
    typeof null //输出 object
    typeof {} //输出 object
    typeof [1] //输出 array
    typeof (function(){}) //输出 function
    typeof undefined //输出 undefined
    typeof '222' //输出 string
    typeof true //输出 boolean
</script>

2. Object.prototype.toString.call

<script>
    var getType=Object.prototype.toString;
    getType.call (2) //输出 number
    getType.call (null) //输出 object
    getType.call ({}) //输出 object
    getType.call ([1]) //输出 array
    getType.call ((function(){})) //输出 function
    getType.call (undefined) //输出 undefined
    getType.call ('222') //输出 string
    getType.call (true) //输出 boolean
</script>

3. Object.constructor

<script>
    var textType = 2; // null or {} or [1] or (function(){}) or undefined or '222' or true
    
    console.log(textType.constructor); 
    // 2 输出 function Number() { [native code] }
    // null 输出 ''
    // {} 输出 function Object() { [native code] }
    // [1] 输出 function Array() { [native code] }
    // (function(){}) 输出 function Function() { [native code] }
    // undefined 输出 ''
    // '222' 输出 function String() { [native code] }
    // true 输出 function Boolean() { [native code] }
</script>
a1556096757
2017-03-02 · 超过31用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:46.3万
展开全部
function getType(obj){
    var t;
    return ((t = typeof(obj)) == "object" ? obj==null && "null" || Object.prototype.toString.call(obj).slice(8,-1):t).toLowerCase(); 
}

//test

getType(new Date)  //输出   date

getType("123")  //输出   String

getType(123)  //输出   number

...

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kgawr
2017-03-02 · TA获得超过174个赞
知道小有建树答主
回答量:115
采纳率:100%
帮助的人:52.8万
展开全部
var num = 123;
var str = 'abcdef';
var bool = true;
var arr = [1, 2, 3, 4];
var json = {name:'wenzi', age:25};
var func = function(){ console.log('this is function'); }
var und = undefined;
var nul = null;
var date = new Date();
var reg = /^[a-zA-Z]{5,20}$/;
var error= new Error();
console.log(
typeof num,
typeof str,
typeof bool,
typeof arr,
typeof json,
typeof func,
typeof und,
typeof nul,
typeof date,
typeof reg,
typeof error
);
试下看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式