Javascript编程:点[.]是否始终是运算符?

Javascript编程:点[.]是否始终是运算符?,javascript,operators,Javascript,Operators,在JavaScript中,点是否始终是运算符 例如: AnObject.aMethod() 是否有点不是运算符的示例?它不是数字文本中的运算符 var x = 12.5; 没有 “字符串。” /regular.expressions/ 1.2//数字 //注释。 >p>当描述成员访问 .作为操作员时,我认为这在java、javascript、C或C++等语言中有点不正确。 其他二进制运算符在左侧有一个表达式,在右侧有一个表达式,而成员访问运算符不允许在右侧有一个表达式,只允许有一个字段标识

在JavaScript中,点
是否始终是运算符

例如:

AnObject.aMethod()

是否有点
不是运算符的示例?

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

var x = 12.5;
没有

  • “字符串。”
  • /regular.expressions/
  • 1.2//数字
  • //注释。

  • >p>当描述成员访问<代码> .<代码>作为操作员时,我认为这在java、javascript、C或C++等语言中有点不正确。 其他二进制运算符在左侧有一个表达式,在右侧有一个表达式,而成员访问运算符不允许在右侧有一个表达式,只允许有一个字段标识符。。。i、 一种非常特殊的语法形式

    例如,对于其他二进制运算符来说,谈论左或右关联性是有意义的(例如,如果
    a op b op c
    a op(b op c)
    (a op b)op c
    ),而这是一个关于成员访问的无意义问题,因为这两种形式中只有一种是语法有效的(您甚至无法编写
    a.(b)
    )。优先权也是如此

    如果问题不是关于运算符的关联性或优先级,而是关于表达式中的字符(即,问题是表达式中的点字符何时不表示成员访问),那么很明显,您有浮点数(其中起到小数点的作用)、字符串字面值中的点字符(当它扮演自己的角色时…单个点字符的角色)和正则表达式中的点字符(在这里,它表示自身或“任何字符”,具体取决于它是否转义)


    昆汀还记得我,你可以在注释中加上点,意思由人来解释。

    除了已经说明的内容(如数字、字符串和正则表达式),点标点可能并不总是有效。因此,在这种情况下,如果您尝试访问的属性具有特殊字符,
    将不是有效的运算符:

    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'];
    

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

    祝贺你!只有12768个,直到你达到一个大的整数里程碑。(@nnnnnn-Ha!祝贺你达到10K。你已经使用了那些10K工具吗?谢谢。我已经批准(并拒绝了)一些编辑,但仅此而已。回到主题,你可以在答案中添加正则表达式和字符串文字。@nnnnah-regex。你为什么不添加一个这样的答案呢。我不确定我是否会计算字符串文字-这只是纯原始文本。但在正则表达式中,点实际上意味着一些东西供参考:它是一个。ECMA在这方面是准确的,不需要计算l点“运算符”-标准中的“点表示法”。点运算符是左关联的。@Quentin:“运算符”当您希望通过使用优先级和关联性表来简化语法描述时,通常使用术语。但是,这对成员访问语法没有意义,因为关联性根本没有意义,而优先级对左侧部分的意义有限。它可以被视为一元后缀运算符(通过将圆点和以下成员名称粘在一起)但是,即使在这种情况下,由于名称是不固定的,所以在语法上也是一种例外。当然,他们可以自由地使用运算符名称,无论其含义如何。@CharlieSomerville:关于成员访问语法的左右关联性的问题没有意义,因为所谓的“右部分”只能是单个标识符,不能是表达式。因此a.b.c表示(a.b).c不是因为关联规则,而是因为语法规则是a.(b.c)语法错误。当语法不明确时,关联规则和优先规则起作用……成员访问不是这种情况。它是一个有效的运算符,不是有效标识符的是
    prop-2
    。@Quentin:Dot也可以是对象的属性(或方法名)的一部分。例如:
    var obj={'.:14};obj[“.ss.]=15;警报(obj[”]*obj[”.ss.]);
    210显示。而
    obj.hasOwnProperty(“.”)为truereturned@AndrewD-啊,但这些都是字符串:)