javascript - typeof返回结果整理
PHP中文网
PHP中文网 2017-04-10 17:51:31
[JavaScript讨论组]

var p = new Array();
typeof p;
p是一个数组(或者说是数组对象是不是更合理一点),此时p返回的是"object"

typeof Array;
返回的是"function"

写出来整理一下发现因为使用了构造函数,所以p肯定是个对象,但是Array只是个函数(如果理解的不正确,欢迎指正)

typeof的返回值有undefined boolean string number object function
找了一些比较容易搞错的例子:
typeof NaN //返回number
typeof Math //返回object
typeof Global //"undefined" Global对象不属于其他对象的属性方法,级别比typepf高
typeof window //"object"
typeof String //"function"
typeof Boolean //"function"
typeof Number //"function"

还有其他容易搞错的吗?希望提供一下~~

PHP中文网
PHP中文网

认证0级讲师

全部回复(2)
黄舟
typeof 1 //'number'
typeof new Number(1) //'object'
typeof 'str' //'string'
typeof new String('str') //'object'

鉴于typeof如此的不靠谱,借用Object.prototype.toString是更稳妥的做法:

Object.prototype.toString.call(1); // '[object Number]'
Object.prototype.toString.call(new Number); //'[object Number]'
Object.prototype.toString.call([]); // '[object Array]'

封装一个靠谱的类型检测函数:

function classOf(obj) {
    return Object.prototype.toString.call(obj).slice(8, -1);
}
classOf([]); //'Array'
PHP中文网
typeof null = 'object';
typeof undefined = 'undefined';
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号