Ram*_*One 3 javascript function
我正在创建一个简单的函数,并想将值保存到var中。为什么我必须写一份申报表?
知道解决方案,但必须理解问题。
function a() {
console.log('This is a Test.');
}
let b = a();
console.log(b);Run Code Online (Sandbox Code Playgroud)
结果将是:
This is a Test.
Undefined
Run Code Online (Sandbox Code Playgroud)
问题:
解决方案显然是函数a()不返回任何内容。以我的理解,函数a()实际上会“返回”这是一个测试原因console.log()会运行吗?
很好的问题:关键是JavaScript 中的每个函数都返回一个值,无论是否给它返回值。如果您不使用return关键字告诉JavaScript返回什么,则它将返回内置的JavaScript值undefined。
因此,在您的情况下,您要告诉JavaScript解释器执行该函数a,然后将变量设置b为所返回的值a。由于您从未指定a应返回的内容,因此它将返回的内置值undefined,这就是为什么您在控制台日志中看到的内容。
可能有帮助的事情:您的函数a调用console.log以打印'This is a Test.'到控制台。这与告诉a返回字符串不同'This is a Test.'。这是函数在调用时执行的操作。没有返回值,您的函数仍会返回undefined。
听起来您可能希望函数a返回字符串,'This is a Test.'而不是将其打印到控制台本身。可以通过对功能进行以下更改来完成此操作:
function a() {
return 'This is a test.';
}
Run Code Online (Sandbox Code Playgroud)