javascript - 抛出错误时函数返回什么 - Javascript

标签 javascript return throw

我正在阅读《面向 Web 开发人员的专业 Javascript》一书,并看到了以下代码。我对此有一些疑问:

  1. “throw new Error()”返回什么?不明确的?
  2. 如果抛出错误,“if”的代码块会怎样?

function matchesSelector(element, selector){

  if(element.matchesSelector){
      return element.matchesSelector(selector);
  }else if(element.msMatchesSelector){
      return element.msMatchesSelector(selector);
  }else if(element.mozMatchesSelector){
      return element.mozMatchesSelector(selector);
  }else if(element.webkitMatchesSelector){
      return element.webkitMatchesSelector(selector);
  }else{
    throw new Error("Not supported!");
  }
}


if(matchesSelector(document.body, "body.page1")){
  //do somthing
}

最佳答案

抛出错误时,如果未使用 try...catch 捕获错误 block ,作用域执行就停止了。

该函数不返回任何内容,如果该函数的返回值在 if 语句的某处使用,则该 if 语句 block 也不会执行。

关于javascript - 抛出错误时函数返回什么 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42378047/

相关文章:

java - 是否有一个 return 语句只是为了满足语法不好的做法?

c++ - 当我们抛出一个对象/变量来捕获时会发生什么?

Node.js - 在 ES6 promise 链中抛出异常

javascript - Bootstrap 日期选择器弹出窗口未显示突出显示的当前日期

objective-c - "return..."语句是否使 "break;"没有实际意义?

php - return true 不返回或我的 else 声明不起作用?

scala - 在 Scala 中抛出异常的代价

javascript - 更改 JavaScript 对象键的大小写

javascript - 如何使用 jQuery 添加迄今为止的天数

javascript - 博文中的 Gatsby-js 客户端 javascript 内联