输出有效并获得 "undefined" 值

Output works and get "undefined" value too

我有这个小代码:

var mobili='mqihfdbacegklnprtuz&xyso';
function encrypt(index){
 if(mobili.includes(index)){
   var test = "It's working";
   console.log(test)
 }
 else{
   var test = "Bueller? Bueller?";
   console.log(test);
 }
}
console.log(encrypt('j'));

所以...此代码有效,但输出也为我提供了 "undefined" 值。为什么?

enter image description here

PS: 我在repl.it 网站到运行 这个。

除非明确提及函数,否则始终 return 和 undefined。这个函数 encrypt 没有明确地 returning 任何东西。这只是安慰声明

您可以 return test 从函数

var mobili = 'mqihfdbacegklnprtuz&xyso';

function encrypt(index) {
  if (mobili.includes(index)) {
    return "It's working";
    
  } else {
    return "Bueller? Bueller?";
    
  }
}
console.log(encrypt('j'));

您的函数没有 returning 任何东西 - 它实际上是在调用 console.log 本身。您可以通过两种方式解决此问题:

一:在函数中添加 return 语句而不是使用 console.log:

function encrypt(index){
 if(mobili.includes(index)){
   var test = "It's working";
 }
 else{
   var test = "Bueller? Bueller?";
 }
 return test;
}

二:不使用console.log调用函数:

encrypt('j');