JavaScript表达式会返回什么内容吗?
在Node.js REPL中:
> console.log("Hello World")
Hello World
undefined
undefined
是JavaScript函数返回。因为JavaScript函数总是返回一些东西。
但是当我尝试在REPL中定义变量时:
> var x = 11
undefined
也会打印undefined
。 JavaScript var表达式是否也会返回一些内容?
答案 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