在JavaScript中,点.
始终是运算符吗?
例如:
AnObject.aMethod()
是否存在点.
不运算符的示例?
答案 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 c
是a 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'];
我的观点是,在某些情况下,点并不总是有效的运算符(即使您认为它也是如此)。