在JavaScript中,点号.
是否总是一个运算符?
例如:
AnObject.aMethod()
有没有例子,其中点(
.
)不是运算符的情况?在JavaScript中,点号.
是否总是一个运算符?
例如:
AnObject.aMethod()
.
)不是运算符的情况?编号。
"字符串。"
/正则表达式/
1.2 // 数字
// 注释。
var obj={".":14};obj[".ss."]=15;alert(obj["."]*obj[".ss."]);
将显示 210。而 obj.hasOwnProperty(".")
则返回 true。 - Andrew D.这不是数字字面量中的运算符。
var x = 12.5;
.
描述为运算符,但我认为在像Java、Javascript、C或C++这样的语言中,这有些不正确。其他二元运算符在左侧和右侧都有表达式,而成员访问运算符不允许右侧有表达式,只允许一个字段标识符...也就是一种非常特定的语法形式。例如,对于其他二元运算符,左结合性或右结合性有意义(即a op b op c
是a op (b op c)
还是(a op b) op c
),而对于成员访问,这是一个无意义的问题,因为只有其中一种形式在语法上是有效的(你甚至不能写a.(b)
)。同样适用于优先级。如果问题不是关于结合性或优先级的运算符,而只是表达式中字符的问题(即问题是点字符在表达式中不表示成员访问时),那么显然你有浮点数(其中它扮演小数点的角色)、字符串字面量中的点字符(它扮演自己...单个点字符的角色)以及正则表达式中的点字符(根据是否转义,它表示本身或“任何字符”)。正如Quentin提醒我的那样,注释中也可以有点,其含义留给人类解释。 .
将不是一个有效的运算符:
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'];
我的观点是,有些情况下,点号并不总是一个有效的运算符(即使你认为它应该是)。
prop-2
。 - Quentin