【问题标题】:Where is the unary operator and the operand here?这里的一元运算符和操作数在哪里?
【发布时间】:2015-06-20 03:54:21
【问题描述】:
if (document .getElementByid('header'))
    // Found: do something
} else {
    // Not found: do something else
}

在 Jon Duckett 的“JavaScript 和 JQuery:交互式前端 Web 开发”中写道:

由于对象或数组的存在可以被认为是真实的,因此它通常用于检查页面中是否存在元素。

一元运算符只返回一个操作数的结果。在这里,您可以看到一个 if 语句检查元素的存在。如果找到元素,则结果为真,因此运行第一组代码。如果未找到,则改为运行第二组。

作者是否意味着 if 关键字被认为是一元运算符,document.getElementById('header') 是操作数?

【问题讨论】:

  • 我在那里看不到一元运算符。一元运算符的一个例子是var1 = -var2- 是一个对其操作数取反的一元运算符。
  • 我认为作者的意思是getElementById(),但它是一个方法,而不是一个运算符。
  • 不管作者是什么意思,他似乎是个异类。
  • ecma-international.org/ecma-262/5.1/#sec-11.4 列出一元运算符:deletevoidtypeof++--+-、@987654354@、-4 @.
  • 我觉得第一句话和后面的段落没有任何关系。

标签: javascript unary-operator


【解决方案1】:

运营商是 if,在这种情况下,操作数(运算符对其进行操作)是document .getElementByid('header')

+ 例如是一个二元运算符,它有两个操作数,例如在a+b 中它们将是ab。一元表示,你只有一个操作数。

编辑:

正如 Barmar 所指出的,if 不会产生结果,因此我不会将其称为运算符。我的错,没有考虑清楚

【讨论】:

  • if 不被视为运算符,它是语句的关键字。运算符是表达式的一部分,if 不是表达式。
  • 但也许那本书使用了非标准术语。
  • 我猜你肯定会争辩说它是一个运算符。它接受一个参数并产生一个结果
  • 我了解一元运算符和二元运算符之间的区别。我在这里很困惑,因为我不知道或者我之前没有看到 if 关键字被认为是一元运算符
  • @PeterFischaleck 它不会产生结果。你不能写var = if(condition) value;
猜你喜欢
  • 2019-01-29
  • 1970-01-01
  • 2021-08-11
  • 1970-01-01
  • 2012-11-12
  • 1970-01-01
  • 2021-10-08
  • 2018-04-08
  • 1970-01-01
相关资源
最近更新 更多