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

函数内声明的变量调用console.log输出时返回undefined的问题求助

问题分析与解决

你遇到的j输出undefined有两个核心原因:

1. 大小写不匹配

HTML下拉选项里的文本是Chicken(首字母大写),但你的JS判断条件写的是o=="chicken"(全小写),这导致条件永远不成立,j根本不会被赋值。

2. var的变量提升特性

用var声明的变量会被提升到函数作用域顶部,所以即使if块没执行,j已经存在但未初始化,自然输出undefined。


修复方案

方案一:统一大小写判断

把判断条件里的字符串统一转换后比较,彻底避免大小写问题:

function mix() {
    var i = document.getElementById("a").value
    console.log(i)
    if (i.toLowerCase() == "chicken") {
        var c = "has wings"
        var d = "feathered"
        var e = "eats vegetables and grains"
        var f = "white, brown or black in color"
        var g = "40-60cm long"
        var h = "produces chicken meat"
    }
    var o = document.getElementById("b").value
    console.log(o)
    if (o.toLowerCase() == "chicken"){
        var j = "has wings"
        var k = "feathered"
        var l = "eats vegetables and grains"
        var m = "white, brown or black in color"
        var n = "40-60cm long"
        var p = "produces chicken meat"
    }
    console.log(j)
}

方案二:用let替代var,提前初始化变量

let是块级作用域,不会有变量提升的问题,提前声明并初始化变量可以避免意外的undefined:

function mix() {
    let i = document.getElementById("a").value
    console.log(i)
    let c, d, e, f, g, h;
    if (i.toLowerCase() == "chicken") {
        c = "has wings"
        d = "feathered"
        e = "eats vegetables and grains"
        f = "white, brown or black in color"
        g = "40-60cm long"
        h = "produces chicken meat"
    }
    let o = document.getElementById("b").value
    console.log(o)
    let j, k, l, m, n, p = ""; // 初始化默认值
    if (o.toLowerCase() == "chicken"){
        j = "has wings"
        k = "feathered"
        l = "eats vegetables and grains"
        m = "white, brown or black in color"
        n = "40-60cm long"
        p = "produces chicken meat"
    }
    console.log(j)
}

这样修改后,当你选择Chicken选项时,j就会被正确赋值并输出,不会再返回undefined。

内容的提问来源于stack exchange,提问作者Foxtrot -14

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 00:12:02