为什么在 vanilla JS 中使用尖括号调用函数是有效语法?

Gol*_*rYT 0 javascript syntax

由于某种原因,Vanilla JS 允许在函数调用中使用尖括号,但它改变了行为。它肯定不是泛型,而且 JS 也不是静态类型的。

let x = "ok";
console.log<"you wont see this">("And you wont see this either");
Run Code Online (Sandbox Code Playgroud)

只是返回 false 并且从不向控制台输出任何内容。为什么这是有效的语法以及它到底有什么作用?

Dmi*_*sky 5

这是一个比较运算符链。比较运算符都是左关联的,因此它们是从左到右计算的。

\n

发生的情况是:

\n
    \n
  • 评估是否console.log小于"you wont see this";结果是false(其他运算符也会返回false
  • \n
  • 评估false(上面的结果)大于("And you wont see this either")\xe2\x80\x93 ,它本质上只是一个字符串,括号在这种情况下是无关紧要的;结果还是false
  • \n
\n

控制台中没有记录任何内容,因为console.log从未被调用。

\n