小编Ale*_*tin的帖子

为什么"new Date().toString()"在给定Javascript运算符优先级的情况下工作?

MDN声明 Javscript中有两个操作符具有最高优先级:

  • 左关联成员运算符: foo.bar
  • 右关联新运算符: new Foo()

我通常明确地将两者分开:(new Date()).toString()
但我经常看到它们两者合二为一:new Date().toString()

根据这个答案,第二种方式起作用的原因在于,当两个运算符具有相同的优先级时,它是第二个运算符的关联性.在这种情况下,成员运算符是左关联的,这意味着new Date()首先评估.

但是,如果是这样的话,为什么会new Date.toString()失败呢?毕竟new Date只是语法糖new Date().上述论点说它应该有用,但显然不行.

我错过了什么?

javascript parsing operator-precedence

28
推荐指数
2
解决办法
952
查看次数

标签 统计

javascript ×1

operator-precedence ×1

parsing ×1