1.javascript的typeof返回哪些数据类型

1.javascript的typeof返回哪些数据类型
最直接的回答是:最常见的数据类型有 string, boolean, number, undefined, function, object。
具体一点:分别返回的有 一种为基本数据类型(又称原始数据类型)具体返回有String,Number,布尔(Boolean),引用数据类型具体返回有Object,剩下的一种就是undefined。
一般面试官不会这么轻易的放过你的,会出一些拓展的。
1 有一些面试官会问,为什么Array这种数据类型,Array明明是数据类型之一,typeof怎么就没了,然后等你回答好了,又继续发问,那怎么判断这个数据类型是不是Array呢?
2 如typeof会报错吗?用typeof去判断undefined的结果是什么?还有更有意思的,就是会问一些我们经常用的但是没试过的,贼有趣。typeof(console)结果是啥?typeof(console.log)的结果是啥?typeof(console.log())的结果呢?有没有变得有趣,其实这些都很好解答,不用试,也能大概的猜到答案。

好了,开始慢慢说一下这个typeof吧。
首先在JS中,分两种数据类型:
基本数据类型:Number、String、Boolean、Null、 Undefined、Symbol(ES6),这些类型可以直接操作保存在变量中的实际值。同时要记住,这这些值他是存放在栈中的。
引用数据类型:Object(在JS中除了基本数据类型以外的都是对象,数据-Array是对象,函数-Function是对象,正则表达式-Reg是对象,,日期时间-Date是对象)。
然后到目前为止,ECMAScript 标准中定义了8种数据类型,它们分别是Undefined、Null、Number、Boolean、String、Symbol、BigInt、Object。
为了判断变量的数据类型,JavaScript还提供了typeof操作符。
在这里插入图片描述

请一定记住这张表,这是每个开发的必修课,不要面试官稍微转个弯问你,请说一下几种tyupeof后,结果为Object或者Number的数据类型,你就傻眼了。非要人家问Array的typeof结果是啥你才能反映过来。

来回答之前问的问题:
第1点 在js中是不是有没有Array的数据类型,答案是有的,但是我们统一归纳在了Object中,
然后怎么判断,网络上有很多办法啊,自己百度判断Array的方法,我就不多说了,我一般都是用instanceof这种方法,怎么用呢,看返回值是true还是false,如图:
在这里插入图片描述

arr3返回是false,所以他不是Array,arr1和arr2返回是true,所以他是Array。
注:报错的地方不用管,是我用了中文的分号而已。
第2点
如typeof会报错吗,答案是不会报错(特殊除外,引用了未被定义的变量进行运算)。看图
在这里插入图片描述

上图的fun2其实没有被定义的,但是我们并没有报错,
在这里插入图片描述

但是要记住,用未被定的变量进行运算,其实还是会报错的。如图:
在这里插入图片描述

然后typeof返回值其实都是String类型的,一定要记住,返回的都是字符串。请看图:
在这里插入图片描述

最后就是去看console那些的typeof了,其实猜也能大概猜到,console这个东西,他用了‘.’这个方法,用了‘点’的方法去调用,什么东西用‘点’调用呢,就跟我们平时在对象里面去一个属性或者方法很类似,返回的结果肯定是一个object啊,跟我们平时用的全局window对象很类似。
在这里插入图片描述

然后就是console.log他的类型呢,想想,这是什么,在对象里面,我们用‘点’方法取出来的东西是什么,无非就是属性或者方法嘛,那现在二选一,是属性还是方法?
最后是console.log()他的类型呢,我不提供答案了。想知道答案,仔细想想,然后自己打一遍确认婴喜爱,比啥都好!!!

算了,如图:
在这里插入图片描述

解释一下,我们经常用这个方法去调试,这个没反应过来真的要挨打了,而且它能执行,你说他是啥呢;
最后为啥是undefined,你说为啥是undefined,一个方法执行结束,如果没有return,系统会默人给它干掉,把这个方法销毁掉,以保持内存,这是最浅显的垃圾回收机制,然后返回一个undefined,所以typeof(console.log())其实就相当于typeof(undefined)。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值