JavaScript var表达式是否返回undefined?

时间:2018-02-24 08:57:54

标签: javascript

JavaScript表达式会返回什么内容吗?

在Node.js REPL中:

> console.log("Hello World")
Hello World
undefined

undefined是JavaScript函数返回。因为JavaScript函数总是返回一些东西。

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

> var x = 11
undefined

也会打印undefined。 JavaScript var表达式是否也会返回一些内容?

2 个答案:

答案 0 :(得分:1)

是的,所有JavaScript语句都有结果,尽管通常它几乎没用,并且只能使用$Keys<>函数 - 至少在do expressions添加到语言之前。例如。

eval

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

答案 1 :(得分:0)

当您在浏览器的控制台或Node.js REPL中键入内容时,表达式将封装在IIFE中并执行。此IIFE返回您输入的表达式。因此,如果您的表达式没有返回任何内容,则会打印undefined

想象一下你打字:

console.log(1)

它由Node.js REPL解释为:

(function() { return console.log(1) })()

由于它没有返回任何内容,它只是在控制台上打印undefined

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

(function() { return 1 })()

这将打印1作为返回值。

HTH