JavaScript变量表达式是否返回未定义?

JavaScript变量表达式是否返回未定义?,javascript,Javascript,JavaScript表达式是否会返回某些内容 在Node.js REPL中: > console.log("Hello World") Hello World undefined 未定义的是JavaScript函数返回。因为JavaScript函数总是返回一些东西 但当我尝试在REPL中定义变量时: > var x = 11 undefined 还将打印一个未定义的。JavaScript var表达式是否也会返回某些内容?是的,所有JavaScript语句都会有结果,尽管它通常非

JavaScript表达式是否会返回某些内容

在Node.js REPL中:

> console.log("Hello World")
Hello World
undefined
未定义的
是JavaScript函数返回。因为JavaScript函数总是返回一些东西

但当我尝试在REPL中定义变量时:

> var x = 11
undefined

还将打印一个未定义的
。JavaScript var表达式是否也会返回某些内容?

是的,所有JavaScript语句都会有结果,尽管它通常非常无用,并且只能使用
eval
函数使用,至少在添加到语言之前是如此。比如说

>>> eval("if (true) 4; else 5;")
4
>>> eval("if (true) 4; else 5;")
5
>>> eval("for (let i = 0; i < 10; i++) 7")
7
>>> eval("for (let i = 0; i < 10; i++) {}")
undefined
>>> eval("var express = 4")
undefined
>评估(“如果(真)4;否则5;”)
4.
>>>评估(“如果(正确)4;否则5;”)
5.
>>>评估(“对于(假设i=0;i<10;i++)7”)
7.
>>>eval(“for(让i=0;i<10;i++{}”)
未定义
>>>评估(“var express=4”)
未定义

依此类推,精确的值在语言规范中指定。

当您在浏览器控制台或Node.js REPL中键入某个内容时,该表达式包含在IIFE中并执行。此iLife返回您输入的表达式。因此,如果表达式没有返回任何内容,它将打印
未定义的

假设您键入:

console.log(1)
Node.js REPL将其解释为:

(function() { return console.log(1) })()
因为它不返回任何内容,所以只需在控制台上打印
undefined

现在,如果您在REPL中写入一个数字(例如
1
),它将被解释为:

(function() { return 1 })()
这将打印
1
作为返回值


HTH

未定义的是调用console.log。。。这是console.logreturns@JaromandaX我指的是
var x=11
。什么是“javaScript express”?那是第一站的火车吗?是的。。。嗯,
var x
的结果是
undefined
更新了帖子。它应该被称为“result”之类的东西。返回值只是
return
语句可以实现的produce@Bergi修正,谢谢注意-顺便说一句,你可以编辑帖子,虽然你可能知道这一点,我已经做了几千次编辑:-)我只修正语法错误或打字错误,没有评论,没有内容,至少在新用户的帖子中。