typeof引发的思考
今天在群里看到一位网友提问:
var status=1;
typeof status
结果输出什么
我会心一笑 ,这尼玛这么简单,一看就是‘number’,结果网友说不是number,而是string,我心想怎么可能,结果在浏览器测试,打脸了,输出了string
经过查阅资料,有一位博主遇到过类似的问题,有一句重点,‘status是window下的一个属性’。这引起了我的注意,按照常规来说,重新定义一个变量会覆盖系统变量,但是并没有被覆盖掉。我做了一个测试,去修改window下screen属性,结果screen类型被改掉了。但是这就奇怪了,为什么status的类型却改不了,这里我并没有查到资料。我的猜测是status这个属性在浏览器中必定是string类型,即使你改变了它的类型,依然你会被转换成字符串。带着疑问,我将status分别赋值成array和object。果不其然,分别得到了toString后的结果。
然后,我又思考如果真是这样,那么如果这段代码在node环境下执行,就不应该存在这个问题,因为node是没有window这个宿主对象的。最后,我在node环境下执行了这段代码,验证了我的猜想是对的。
有关测试代码如下:

typeof引发的思考的更多相关文章
- Spring之LoadTimeWeaver——一个需求引发的思考---转
		
原文地址:http://www.myexception.cn/software-architecture-design/602651.html Spring之LoadTimeWeaver——一个需求引 ...
 - 由SecureCRT引发的思考和学习
		
由SecureCRT引发的思考和学习 http://mp.weixin.qq.com/s?__biz=MzAxOTAzMDEwMA==&mid=2652500597&idx=1& ...
 - 解决一道leetcode算法题的曲折过程及引发的思考
		
写在前面 本题实际解题过程是 从 40秒 --> 24秒 -->1.5秒 --> 715ms --> 320ms --> 48ms --> 36ms --> ...
 - 【思考】由安装zabbix至排障php一系列引发的思考
		
[思考]由安装zabbix至排障php一系列引发的思考 linux的知识点林立众多,很有可能你在排查一个故障的时候就得用到另一门技术的知识: 由于linux本身的应用依赖的库和其它环境环环相扣,但又没 ...
 - 由<a href = "#" > 引发的思考
		
原文:由<a href = "#" > 引发的思考 前阵子在一个移动项目中,通过 <a href = "#" > 的方式 绑定clic ...
 - 曲演杂坛--一条DELETE引发的思考
		
原文:曲演杂坛--一条DELETE引发的思考 场景介绍: 我们有一张表,专门用来生成自增ID供业务使用,表结构如下: CREATE TABLE TB001 ( ID ,) PRIMARY KEY, D ...
 - class_copyIvarList方法获取实例变量问题引发的思考
		
在runtime.h中,你可以通过其中的一个方法来获取实例变量,那就是class_copyIvarList方法,具体的实现如下: - (NSArray *)ivarArray:(Class)cls { ...
 - 由一个emoji引发的思考
		
由一个emoji引发的思考 从毕业以来,基本就一直在做移动端,但是一直就关于移动端的开发,各种适配问题的解决,在日常搬砖中处理了就过了,也没有把东西都沉淀下来,觉得甚是寒颜.现就一个小bug,让我们来 ...
 - 一次composer错误使用引发的思考
		
一次composer错误使用引发的思考 这个思考源自于一个事故.让我对版本依赖重新思考了一下. 事故现象 一个线上的管理后台,一个使用laravel搭建的管理后台,之前在线上跑的好好的,今天comop ...
 
随机推荐
- MQTT 及其 测试工具
			
协议说明书:https://mcxiaoke.gitbooks.io/mqtt-cn/content/mqtt/04-OperationalBehavior.html 官网提供了很多的broker模拟 ...
 - Docker从入门到飞升:基础配置安装
			
导读 Docker近几年非常火,因为它是容器虚拟化,更能够充分提高硬件资源的使用率.其实利用率高不算什么,它最大的优势是能给让运维人员或者开发人员快速部署和交付资源,大大提高了工作效率.几乎所有的大企 ...
 - excel多元回归-系数参数解读
			
sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campai ...
 - 化工pdf下载
			
Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...
 - GO语言的进阶之路-网络编程之socket
			
GO语言的进阶之路-网络编程之socket 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是socket; 在说socket之前,我们要对两个概念要有所了解,就是IP和端口 ...
 - EasyUI的onLoadSuccess方法
			
EasyUI加载表单的时候,对表单内行数据进行判断,可以赋颜色,也可以进行其他操作 onLoadSuccess:function(data) { for(var i=0;i<data.rows. ...
 - Hbase记录-client访问zookeeper大量断开以及参数调优分析(转载)
			
1.hbase client配置参数 超时时间.重试次数.重试时间间隔的配置也比较重要,因为默认的配置的值都较大,如果出现hbase集群或者RegionServer以及ZK关掉,则对应用程序是灾难性的 ...
 - jq版轮播图
			
html部分 <div class="banner"> <ul class="img"> <li><img src=& ...
 - Linux  创建 时间命名 文件
			
创建以 时间 命名文件:: touch /logs/`date +%Y-%m-%d_%d_%H:%M`.log touch "$(date +%Y-%m-%d_%H:%M:%S.TXT)
 - 【加密】Md5Util
			
import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class Md5U ...