typeof 和toStirng 数据类型判断

typeof 返回值有六种可能: "number," "string," "boolean," "object," "function," 和 "undefined."


                var a;
                var a1='people'.name;
                alert("a的类型" + typeof a);//undefined
                alert("a1的类型" + typeof a1);//undefined

                var b = false;
                alert("b的类型" + typeof b);//boolean

                var c = 'abc';
                alert("c的类型" + typeof c);//string

                var d = 2;
                var d1 = 2.3;
                alert("d的类型" + typeof d);//number
                alert("d1的类型" + typeof d1);//number

                var e = function () {
                };
                var e1 = function () {
                    return 1;
                };
                alert("e的类型" + typeof e);//function
                alert("e1的类型" + typeof e1);//function

                var f = null;
                var f1= [];f1[f1.length]="张三";
                alert("f的类型" + typeof f);//object
                alert("f1的类型" + typeof f1);//object






想区别对象、数组 单纯使用 typeof 是不行的,JavaScript中,通过Object.prototype.toString方法,判断某个对象值属于哪种内置类型。

由于 JavaScript 中一切都是对象,任何都不例外,对所有值类型应用 Object.prototype.toString.call() 方法结果如下:

<script  type="text/javascript">

console.log(typeof 123)//number
console.log(typeof '123')//string
console.log(typeof true)//boolean
console.log(typeof function(){})//function
console.log(typeof {})//object
console.log(typeof [])//object
console.log(typeof new Date())//object
console.log(typeof null)//object
console.log(typeof  undefined)//undefined


console.log(Object.prototype.toString.call(123)) //[object Number]
console.log(Object.prototype.toString.call('123')) //[object String]
console.log(Object.prototype.toString.call(true)) //[object Boolean]
console.log(Object.prototype.toString.call(function(){})) //[object Function]
console.log(Object.prototype.toString.call({})) //[object Object]
console.log(Object.prototype.toString.call([])) //[object Array]
console.log(Object.prototype.toString.call(new Date()) )//[object Date]
console.log(Object.prototype.toString.call(null)) //[object Null]
console.log(Object.prototype.toString.call(undefined)) //[object Undefined]



</script>



判断是否为函数

function isFunction(it) {
        return Object.prototype.toString.call(it) === '[object Function]';
    }

判断是否为数组:

function isArray(o) { 
  return Object.prototype.toString.call(o) === '[object Array]';  
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值