return 语句在 JavaScript try block 中不起作用



return 语句通常会终止函数执行。但是我已经意识到返回语句并不像我预期的那样工作?问题出在哪里?

function SimpleSymbols() {
    ["a", "b", "c", "d"].forEach(function (char, index) {
        try {
            console.log("alert");
            return "false";  //this line does not work?
        } catch (err) {
        }
    });
}
SimpleSymbols();

forEach() 不会返回。循环完成后,您可以从循环外部返回:

function SimpleSymbols() { 
  var r;
  ["a", "b", "c", "d"].forEach(function (char, index) {
    try {
        console.log("alert");
        r = "false";  //this line does not work?
    } catch (err) {
    }
  });
  return r
}
console.log(SimpleSymbols());

相反,您可以使用 normal for 循环:

function SimpleSymbols() { 
  var arr = ["a", "b", "c", "d"]
  for(var i=0; i<arr.length; i++){
    try {
        console.log("alert");
        return "false";  //this line does not work?
    } catch (err) {
    }
  }
}
console.log(SimpleSymbols());

最新更新