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

编写含可选链的JavaScript代码报错,复制无可选链代码后错误消失

问题分析与解决

你的报错信息翻译为:「赋值表达式的左侧不能使用可选属性访问」,问题根源出在你自行编写代码里的?.可选链操作符上。

如果你是在执行赋值操作(比如document.getElementById("num1-el")?.textContent = "123"),这种写法是JavaScript明确禁止的——可选链的作用是当左侧值为null或undefined时短路返回,不再继续访问后续属性。但把可选链放在赋值语句的左侧,一旦目标元素不存在,赋值操作就没有有效目标,JS直接拦截这种无意义的语法。

而你复制的代码去掉了?.,直接使用document.getElementById("num2-el").textContent:如果目标元素存在,就能正常完成赋值;如果元素不存在,会抛出「Cannot set property 'textContent' of null」的运行时错误,但不会触发你当前遇到的语法错误。

解决办法:

  • 若能确定目标元素一定存在,直接去掉?.,按复制的代码写法即可
  • 若不确定元素是否存在,先做存在性判断再赋值:
    const targetEl = document.getElementById("num1-el");
    if (targetEl) {
      targetEl.textContent = "你要设置的内容";
    }
    

内容的提问来源于stack exchange,提问作者we die tomorrow

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:05:33