当前位置 : 主页 > 编程语言 > java >

typeof的用法和注意点

来源:互联网 收集:自由互联 发布时间:2022-09-02
基本数据类型和查看数据类型 1==》js有六种基本数据类型。 String Boolean Number null underfined Symbol 【6种】 但是《你不知道的javascript》的作者认为有7中。那一种是【对象】 object 现在我觉得
基本数据类型和查看数据类型
1==》js有六种基本数据类型。 String Boolean Number null underfined Symbol 【6种】
但是《你不知道的javascript》的作者认为有7中。那一种是【对象】 object
现在我觉得应该是【7种】 加上对象
在引用数据类型 object 中又包括【function/array/object】

2==》查看变量的基本数据类型使用typeof; 使用方式 typeof b
但是如果是引用数据类型的话,
推荐使用 instanceOf 去查看。变量 instanceof String
因为typeof去检查函数和对象是可以的的。
但是去检查数组,就会出错哈。
查看数据类型
var a;
console.log(typeof a);//undefined
// 如果一个变量定义了,但是没声明,它的类型和值就是underfined

var b = "heeh";
console.log(typeof b);//string

var c = null;
console.log(typeof c); //object
// 它的结果是object,总所周知,这是设计上的缺陷哈。这是一个bug


function getSay() {
console.log("我是函数");
}
console.log(typeof getSay);//function

var obj = {
a: 1212
}
console.log(typeof obj); //object


var arr = [12, 34, 56];
console.log(typeof arr);//object有没有感觉奇怪。数组竟然也是Object。为啥函数不是 Object 呢???【2020-4-10】
因为typeof检查时并不严谨,遇见数组,就会出现这一种情况哈。
也就是说:数组使用typeof检查时,返回的是 Object。
现在我可以理解了:
在js种,一切都是对象。所以使用typeof检查数组,返回的是Object。


var arr = [12, 34, 56];
function a(){}
console.log(typeof arr);//object
console.log( arr instanceof Array);//true
console.log( arr instanceof Object);//true
console.log(a instanceof Function);//true

遇见问题,这是你成长的机会,如果你能够解决,这就是收获。


作者:​​晚来南风晚相识​​​

本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接

如果文中有什么错误,欢迎指出。以免更多的人被误导。



网友评论