Javascript编程:点[。]总是运算符吗?

时间:2012-01-13 06:46:49

标签: javascript operators

在JavaScript中,点.始终是运算符吗?

例如:

AnObject.aMethod()

是否存在点. 运算符的示例?

4 个答案:

答案 0 :(得分:9)

没有

  • "Strings."
  • /regular.expressions/
  • 1.2 // Numbers
  • // Comments.

答案 1 :(得分:5)

它不是数字文字中的运算符

var x = 12.5;

答案 2 :(得分:5)

虽然将成员访问.描述为运算符是常见的,但我认为这在Java,Javascript,C或C ++等语言中有些不正确。

其他二元运算符左边有一个表达式,右边有一个表达式,而成员访问运算符不允许右边的表达式,只是一个字段标识符......即一种非常特殊的语法形式。 / p>

例如,对于其他二元运算符,讨论左或右相关性(即a op b op ca op (b op c)还是(a op b) op c)是有意义的,而这是关于成员访问的无意义问题,因为只有两种形式中的一种在语法上有效(你甚至不能写a.(b))。同样适用于优先权。

如果问题不是关于运算符的关联性或优先级,而只是关于表达式中的字符(即问题是表达式中的点字符不表示成员访问)那么显然你有浮点数字(它扮演小数点角色),字符串文字中的点字符(它自己播放...单点字符的作用)和正则表达式中的点字符(其中它或者表示自身或“任何字符“取决于它是否分别被转义。”

同样,当昆汀记得我时,你可以在评论中加点,其意义留给人类解释。

答案 3 :(得分:1)

除了已经陈述的那些(例如数字,字符串和正则表达式)之外,标点符号可能并不总是有效。因此,在这种情况下,您尝试访问的属性具有特殊字符,.将不是有效的运算符:

var obj = {
    'prop1' : null,
    'prop-2' : null
};
obj.prop1;//it works
obj.prop-2;// it doesn't work. you should access with via the brackets operator : obj['prop-2'];

我的观点是,在某些情况下,点并不总是有效的运算符(即使您认为它也是如此)。