zoukankan      html  css  js  c++  java
  • 我所未知的 typeof 现象

    一、一些基本使用测试

    从上述可以看出:

     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

      

      

  • 相关阅读:
    二:虚拟游戏摇杆
    一:AndEngine的小例子
    打造属于自己的安卓Metro界面
    linux设备驱动第四篇:驱动调试方法
    C# 二叉查找树实现
    初识 Angular 体会
    C# 霍夫曼二叉树压缩算法实现
    TypeScript笔记[5]泛型+Dictionary 转
    Axiom3D学习日记 5.Frame Listeners, and Input Handling
    Axiom3D学习日记 4.地形,天空,雾
  • 原文地址:https://www.cnblogs.com/z-one/p/8573967.html
Copyright © 2011-2022 走看看