以下JavaScript语法元素是否为运算符?
. // e.g. myObject.foo;
return // e.g. return 'foo';
[] // e.g. myObject['foo];
在interweb上找到的运营商的定义:
...运算符是应用于一个或多个的程序元素 表达式或陈述中的操作数。
这可能意味着return
in:
return 'foo';
...是一个运算符,'foo'
是操作数。显然这是一个陈述(符合定义)。
答案 0 :(得分:2)
术语"运算符"可以通过两种方式理解:
(通用)一种语言结构,当应用于一组值时,会产生一个新值。在这个一般意义上,是的,点是一个运算符,括号也是如此,但return
不是(因为它不会产生任何值)。在命令式语言中,expression
以递归方式定义为
expression = variable | literal | apply operator to expression(s)
这样,表达式中不是变量或文字的所有内容都是运算符。例如,
a = Math.sin(b[c])
在应用语法中重写
apply(=, a,
apply(<call>,
apply(., Math, sin),
apply([], b, c)))
显示此处有4个运算符:=
,函数调用(()
),点和括号。
(特定语言)无论特定语言标准如何调用&#34;运算符&#34;。在Javascript中,点和括号不称为运算符,而是property accessors。
答案 1 :(得分:1)
不,它们不是运算符,至少与数学运算符不同。它们有时被称为运算符,但它们是语言结构,因为它们不能使用常规值。
.
和[]
(在示例中使用)是property accessors。
return
关键字用于return statement。
运算符与一个或多个操作数一起使用。在这种情况下,.
不是运算符,因为在它不是操作数之后,它是一个标识符。
[]
更类似于运算符,但它是一种语言结构,因为它只适用于某种值。
return
关键字不是运算符,因为它不会形成具有值的表达式。