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

JavaScript函数报错Uncaught ReferenceError:赋值左侧无效排查

问题排查与解决:Uncaught ReferenceError: Invalid left-hand side in assignment

这个错误的根源非常直接,我帮你拆解一下问题和修复方案:

1. 导致错误的核心问题

在你的第一个if条件判断里,你误用了赋值运算符=,而不是比较运算符===/==:

// 错误写法:试图在条件里给sumCumplimiento赋值0.00
if (parseFloat(sumCumplimiento) = 0.00) {

JavaScript不允许在条件判断的左侧进行赋值操作(这会被认为是无效的左值),所以抛出了Invalid left-hand side in assignment错误。你需要把它改成比较操作,推荐使用严格相等===来避免类型隐式转换的问题:

// 正确写法:判断sumCumplimiento解析后是否等于0.00
if (parseFloat(sumCumplimiento) === 0.00) {

2. 额外的笔误问题

我还发现一个拼写错误:"panel-defaluft"应该是"panel-default",这个笔误会导致你的样式无法正确生效,需要修正。

3. 可选的代码优化

为了提升代码可读性和性能,你可以把sumCumplimiento的解析操作提前到函数开头,避免重复调用parseFloat:

修正后的完整代码

function obtenerValorPorColorSemaforo(sumCumplimiento, valueColorVerde, valueColorAmarillo) {
    var result = null;
    // 提前解析所有需要用到的数值,避免重复计算
    var numCumplimiento = parseFloat(sumCumplimiento);
    var porColorVerde = parseFloat(valueColorVerde);
    var porColorAmarillo = parseFloat(valueColorAmarillo);

    if (numCumplimiento === 0.00) {
        // Color gris - 修正了类名拼写
        result = "panel-default";
    } else if (numCumplimiento >= porColorVerde) {
        // Color VERDE
        result = "panel-success";
    } else if (numCumplimiento < porColorVerde && numCumplimiento >= porColorAmarillo) {
        // Color AMARILLO
        result = "panel-warning";
    } else {
        // Color ROJO
        result = "panel-danger";
    }
    return result;
}

这样修改后,你的函数就能正常运行,不会再抛出那个ReferenceError,同时样式类名也能正确匹配了。

内容的提问来源于stack exchange,提问作者Romina Ciccarello

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:16:48