ES9 中的 instanceof 操作符提案

阅读时长 3 分钟读完

ES9 中引入了 instanceof 操作符的其中一个提案,这个提案增加了对 instanceof 的支持。在 ES9 之前,instanceof 的使用场景受到了一些限制,只能用于比较一个对象是否是某个构造函数的实例。但是在 ES9 中,通过 instanceof 的升级版,我们可以更为准确地判断对象是否符合指定的特性。

ES9 中的 instanceof 支持在左侧使用输入原型,这使得它们能够实现更加细粒度的类型检查。这样做的好处是,我们可以更加准确地区分一些特殊情况。比如,我们需要判断一个数组是否为空,那么我们只需要使用下面的代码:

在上面的代码中,我们通过 instanceof 增加了对数组的类型判断,结合 length 的判断,更加准确地得出了数组是否为空的结论。

除了增加对原型的支持,ES9 中的 instanceof 还有一些其他的更新:

  1. 当判断的左侧不是对象类型时,会抛出错误;
  2. instanceof 操作符的行为与 Object.getPrototypeOf 一致;
  3. 对输入的原型进行访问,如果其为 null,则会返回 false。

示例代码如下:

-- -------------------- ---- -------
----- ------ --
----- ---------- ------- ------ --

----- ------ - --- --------
----- ---------- - --- ------------

------------------ ---------- ------- -- ----
---------------------- ---------- ------- -- ----
------------------ ---------- ----------- -- -----
---------------------- ---------- ----------- -- ----
------------------ ---------- ------ -- -----

----- --- - --
--------------- ---------- ------- -- ----
--------------- ---------- ------- -- -----
----------------- ---------- ------- -- -----

----- -------- - --
-------------------- ---------- ------- -- ----
-------------------- ---------- ------ -- ----
--------------------------- --- -- -- ----

从上面的代码可以看出,我们使用 instanceof 可以对多种类型进行准确判断。总结一下,在 ES9 中,我们可以通过 instanceof 实现更为准确、细粒度的类型检查。对于前端开发者来说,优化代码的性能和准确性自然是一个不可忽视的细节。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c4a7c083d39b488181f01b

纠错
反馈