You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么addEventListener回调中if判断可运行但三元运算符不生效?

你第二段代码无法正常运行的核心原因是三元运算符语法不完整。

  • 第一段使用的if条件语句允许仅声明条件成立时的执行分支,无else分支也属于合法JavaScript语法,因此可以正常运行。
  • 第二段使用的三元运算符本质是带返回值的表达式,而非语句,语法强制要求完整结构为判断条件 ? 条件成立时执行的表达式 : 条件不成立时执行的表达式,你省略了:以及条件不成立时的对应分支,属于语法错误,JavaScript引擎无法正常解析这段代码,因此无法运行。

修复方案

如果你希望用单行写法实现同等逻辑,不要使用残缺的三元运算符,更推荐用逻辑与短路写法,语法合法且符合使用场景:

window.addEventListener( 'scroll', () => {
    const pageHeight = window.pageYOffset
    pageHeight > 10 && console.log(pageHeight)
} )

如果一定要使用三元运算符,补全第二个分支即可(无执行需求时可填充undefined、null等无意义值,不过该场景下不推荐这么写):

pageHeight > 10 ? console.log(pageHeight) : undefined

内容的提问来源于stack exchange,提问作者Raging Vids

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 19:15:04