Vanilla JS 出于某种原因允许在函数调用上使用尖括号,但它改变了行为。它肯定不是泛型,而且 JS 也不是静态类型的。
let x = "ok";
console.log<"you wont see this">("And you wont see this either");
只是返回 false 并且从不向控制台输出任何内容。为什么这是有效的语法以及它到底有什么作用?
它是一个比较运算符链。比较运算符都是 左手,因此它们是从左到右计算的。
发生的事情是:
console.log
是否小于"you wont see this"
;结果是 false
(其他运算符也会返回 false
)false
(上面的结果)大于("And you wont see this either")
(本质上只是一个字符串,括号在这种情况下无关紧要;结果仍然是false
。