【问题标题】:Calling JavaScript typeof as operator vs function [duplicate]调用 JavaScript typeof 作为运算符与函数 [重复]
【发布时间】:2021-02-08 13:21:10
【问题描述】:

我已经看到 typeof 被称为一元运算符并且它看起来像一个函数:

typeof "bla"  // like a unary operator
typeof("bla") // like a function

但它真的是作为函数调用还是只是一个看起来像函数调用的表达式?像这样:

typeof ("a string surrounded by parens")

我查看了规范,似乎它只是一个一元运算符。但我不擅长阅读规范。

【问题讨论】:

  • 分组运算符可以放在任何表达式周围。所以是的,它可以使任何一元运算符看起来像一个函数调用:delete(foo.bar)-(baz)
  • 这就是为什么许多风格指南建议始终在关键字后面加上空格的原因,甚至ifforwhilefunction...所以你永远不会想到它们作为函数调用。
  • @Domino 是的,我认为更漂亮的自动添加空间并删除括号。

标签: javascript typeof


【解决方案1】:

第二个

typeof("bla")

它是grouping operator (),不是函数调用的一部分。

【讨论】:

  • 是这样想的。证明它是一元运算符会很有趣。假设我必须相信规范。
  • @ArturCarvalho typeof (typeof) vs typeof (_=>_)typeof (Math.random)
  • @Calculuswhiz 是的,这是一种排除证明,因为没有“运算符”类型。
  • @ArturCarvalho 对。此外,如果它是一个函数,它将在 Node 上的 global 或浏览器上的 window 中可用,例如 setTimeout
猜你喜欢
  • 2011-04-26
  • 2018-12-08
  • 2011-06-09
  • 2021-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-31
  • 1970-01-01
相关资源
最近更新 更多