我所未知的 typeof 现象
2024-08-31 00:42:34
一、一些基本使用测试
从上述可以看出:
1、判断一个 变量 是不是对象类型,不能只用 typeof 运算符;
2、它的返回值一直是一个字符串;
3、尽管 typeof null === 'object',但是这是错误的
执行 null instanceof Object,你就会得到一个浏览器报错,这说明 null 并不是 object 类型的。
查找MDN相关资料发现:
在 javascript 的最初实现中,javascript 的值是由一个 表示该值类型的标签 和 实际的数据的值 表示的。表示 对象 的类型标签是 0。null 代表的是空指针(在大多数平台下为 0x00),因此 null 的类型标签也就成了 0。这是虽然是一个错误,但是ECMAScript 也做过修复但是被驳回了,所以这个错误也就一直存在了。
二、一些特殊使用测试
从上述可以看出:
1、typeof 运算符的优先级高于 加法(不是一元加法) 的优先级;
2、使用 new 运算符创建的的变量,typeof 运算的结果并非全部是 object,new Function() 就是个例外;
3、let 和 const 在其块级作用域内不会由变量提升,因此使用的时候应多家注意
三、例外情况
1、正则表达式,查阅MDN发现:
但是我测试的时候发现,谷歌新版本的结果为 object
2、document.all
最新文章
- 解决“LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏”问题
- 关于 iOS 10 中 ATS / HTTPS /2017 问题
- HW6.25
- Nape刚体body.align();
- java排序算法-选择排序
- C#类型基础——学习笔记一
- phpmyadmin出现空password登录被禁止
- jQuery判断元素是否显示与隐藏
- 撸基础篇系列,JAVA的NIO部分
- linux 编译安装PHP模块
- BZOJ3224普通平衡树——非旋转treap
- hdu 2159FATE(完全背包)
- 类和JSP关系
- 分布式计算课程补充笔记 part 4
- POJ 1328 Radar Installation 贪心 A
- 导入其他python文件或者python文件的函数
- [开源 .NET 跨平台 Crawler 数据采集 爬虫框架: DotnetSpider] [四] JSON数据解析
- 使用spring-rabbit测试RabbitMQ消息确认(发送确认,接收确认)
- python打印ms
- php 多种输入参数完整性检查