时间:2021-05-26
昨天给同事一起玩耍,同事给我出了一道代码题目,是关于typeof的,感觉挺好玩的,在此分享给大家,顺便巩固下自己对typeof知识点的总结。如有不对,请给予指出,共同进步。
代码是这样的:
<!DOCTYPE html><head><title>typeof</title><meta http-equiv="Content-Type" content="text/html;charset=utf-8"/></head><body><script>var a= a||null; var b= c||null; var c= typeof f;console.log(a);console.log(b);console.log(c);</script></body></html>那么,你说运行该代码,chrome调试器会打印什么呢?
请看,效果图
为什么会出现这个结果呢?
首先分析上图中的两个null
因为Javascript在执行代码之前,会先预解析(hoisting)。
什么是预解析(hoisting)呢?
就是在JavaScript中,你可以在函数的任何位置声明多个var语句,它们就像在函数的顶部声明一样发挥作用,且会给var声明的变量赋予一个undefined的初始值。这种行为我们称之为预解析(hoisting)。
所以呢,在执行以上代码前,Javascript会首先将所有的var变量(a,b,c)预解析(hoisting),当执行a||null时,a是undefined的,又因为是||运算,所以结果就是null咯。
c||null是一个道理。
再来看看,为什么typeof f会是undefined呢?f都没定义,不应该会报错吗?
是的,倘若我们去使用一个未定义的变量,浏览器是会报错的。
但是,当用typeof去判断一个未定义的变量,将返回undefined。
那typeof判断值类型时,是个怎么机制呢?总结如下:
1、 对于数字类型的值,typeof会返回number,注意:NaN也是一个数字类型,因为它在JavaScript中代表的是特殊非数字值。
2、 对于字符串类型的值,typeof会返回string。
3、 对于布尔类型的值,typeof会返回boolean。
4、 对于对象,数组,null而言,typeof会返回object
5、 对于函数类型而言,typeof返回function
6、 如果运算数没有定义(不存在或未赋值),将会返回undefined。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
通过本文你可以了解到下面这些知识点:Future模式介绍以及核心思想核心线程数、最大线程数的区别,队列容量代表什么;ThreadPoolTaskExecutor
现在的很多工作都离不开域名,所以了解一定的域名相关知识点是很有必要的。域名知识点包含很多,我们可以从基本的知识点开始了解,比如说需要了解域名注册的步骤是什么,接
本次来讲解与SQL查询有关的两个小知识点,掌握这些知识点,能够让你避免踩坑以及提高查询效率。1.允许字段的值为null,往往会引发灾难首先,先准备点数据,后面好
复制代码代码如下:/***知识点1:ListViewitem:两种长按弹出菜单方式*知识点2:ListViewSimpleAdapter的使用*知识点3:在ja
网页设计软件有哪些?您是网页制作小白吗?你知道哪些网络制作软件吗?你知道怎么用网页做软件吗?假如您不知道,那么您一定要收藏以下知识点,对您肯定有帮助,有力的