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

调用自定义JS函数时出现“Jon未定义”ReferenceError问题排查

错误原因与解决方法

1. 触发报错的直接原因

你调用greeting(Jon, 1, 13)时,Jon没加引号,JavaScript会把它当成变量名去查找,但你根本没定义过叫Jon的变量,所以抛出ReferenceError。

解决方法:把Jon用单引号或双引号包裹,变成字符串字面量:

console.log(greeting("Jon", 1, 13))

2. 代码里的其他潜在问题

除了上述报错,你的代码还有几个得修正的地方:

  • 未声明变量time:time = ((hour+12)*1000)+minutes直接赋值会创建全局变量,建议用let或const声明:
    const time = ((hour + 12) * 1000) + minutes;
    
  • if条件用了赋值运算符而非比较运算符:if (person = "Count Dooku")是把字符串赋值给person,永远为真,应该用严格相等===(或宽松相等==):
    if (person === "Count Dooku")
    
  • 函数无返回值,外层console.log会输出undefined:你的greeting函数内部用console.log输出内容,但函数本身没有return语句,所以外层的console.log(greeting(...))会额外输出undefined。如果不需要外层打印,直接调用greeting("Jon", 1, 13)就行。

修正后的完整代码

function greeting(person, hour, minutes) {
    const time = ((hour + 12) * 1000) + minutes;
    if (person === "Count Dooku") {
        console.log("I'm coming for you, Dooku!");
    } else {
        console.log(`Good day, ${person}! It is currently ${time}`);
    }
}

// 直接调用即可,无需外层console.log
greeting("Jon", 1, 13);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 07:35:06