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

为什么在JavaScript控制台声明变量会输出undefined?

JavaScript 控制台输入返回值逻辑说明

首先明确核心规则:JavaScript 控制台会默认返回你输入代码的求值结果,不同输入的返回值差异本质是 JS 本身的表达式/语句求值规则决定的。

三个示例的代码如下:

// 示例1
Input: "hello";
Output: "hello"

// 示例2
Input: js = "hello";
Output: hello

// 示例3
Input: let js = "hello";
Output: undefined

接下来分别解释每个示例的返回逻辑:

  • 示例1:输入的"hello"是字符串字面量表达式,表达式本身的求值结果就是这个字符串值,所以控制台直接返回该结果,不同控制台输出时可能会带双引号标识这是字符串类型。
  • 示例2:输入的js = "hello"是赋值表达式,JS 中赋值表达式的规则就是返回等号右侧的赋值内容,所以这里返回的结果就是"hello",部分控制台输出纯字符串值时不会展示外层引号,就显示为hello。补充说明:如果当前作用域没有提前声明js变量,这里会隐式创建全局变量js,但这个操作不影响赋值表达式本身的返回值规则。
  • 示例3:输入的let js = "hello"是变量声明语句,它不属于表达式,JS 中变量声明语句的求值结果固定为undefined,所以控制台返回undefined。

补充区分:JS 中所有表达式都会有明确的返回值,而语句不一定有返回值,变量声明、函数声明、if 语句这类语句的求值结果都是undefined。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 16:24:00