JavaScript中Hack风格管道运算符|>优先级是否高于分组运算符()?
Hack风格管道运算符优先级事实说明
以下为完全对齐TC39提案与Babel实现的事实性结论:
- 现行Stage 2版本的Hack风格管道运算符提案中,分组运算符
()的优先级高于管道运算符|>,不存在管道运算符优先级高于分组运算符的规则设定。 - 你观测到的
1 |> f(%) |> g(%)与1 |> (f(%) |> g(%))转译结果一致的现象,和优先级规则无关,核心原因是分组内的f(%) |> g(%)的主题变量%会绑定到最外层管道的输入值1,而非内层f(%)的返回值。 - 你可以通过
(1 |> f(%)) |> g(%)的写法验证分组运算符的优先级作用,该写法转译结果与你测试的两个写法完全一致,符合分组控制优先级的预期。 - Babel 7.15对应的管道运算符插件实现完全对齐Stage 2提案的优先级、结合性、主题变量绑定规则,未做自定义调整。
内容的提问来源于stack exchange,提问作者KenSmooth
相关产品推荐
相关产品推荐

