文章导航

JavaScript typeof 运算符

2018-9-1 10:44| 作者: admin| 查看: 1004| 评论: 0|来自: 蚂蚁部落

在JavaScript中,如果要判断数据类型,估计第一个想到的就是typeof运算符。

因为它不仅从长相看具有做此事的能力,也确实有一定的执行力。

代码实例如下:

[JavaScript] 纯文本查看 复制代码运行代码
console.log(typeof 5);

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/01/104515nre3o8mzg3yed6r8.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

非常的完美,可以准确的打印出数字5的数据类型。

再来看一段代码实例:

[JavaScript] 纯文本查看 复制代码运行代码
let arr=[];
console.log(typeof arr);

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/01/104550s545vjpjwp42zspo.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

数组确实也是object类型,但是我们更希望它能够更为精确的打印出数据类型。

所以typeof运算符虽然能够实现基本的判断功能,但是有时候并不够精准。

再来看一段代码实例:

[JavaScript] 纯文本查看 复制代码运行代码
console.log(typeof 5);
console.log(typeof "蚂蚁部落");
console.log(typeof []);
console.log(typeof null);
console.log(typeof undefined);
console.log(typeof {})

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/01/104624man04ntttj01p2a1.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上面代码的打印结果有的属于预期,有的则出乎意料,下面做一下分析:

(1).前两个打印结果符合预期。

(2).第三个打印不够精准。

(3).null属于是null类型数据,打印结果却是object,这可以认为是ES设计时的一个小失误。

(4).后两个打印结果符合预期。

总结:typeof运算符对于值类型数据(除去null)是准确的,无法准确判断数组。

关于值类型可以参阅JavaScript值类型和引用类型一章节。

想要准确判断数据类型,可以参阅JavaScript获取对象数据类型一章节。


鲜花

握手

雷人

路过

鸡蛋

最新评论

返回顶部