抛出错误时函数 return 是什么 - Javascript

What is the function return when throwing an error - Javascript

我正在阅读 Professional Javascript For Web Developers 一书,看到了以下代码。我对此有一些疑问:

  1. "throw new Error()"return是什么意思?不明确的?
  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
}

这个特定的代码块试图创建一个通用的跨平台选择器。如果您遇到错误,那么您使用的任何浏览器都不支持任何给定的选择器匹配(并且可能被视为边缘浏览器,由 "acceptably small" 少数用户使用)。它会失败,并且可能会在控制台中返回一条错误消息。但多半会默默死去。

推而广之,当最后的 if() 为 运行 时,它也会静静地死去...

抛出错误时,如果未使用 try...catch 块捕获错误,范围执行将停止。

该函数没有 return 任何内容,如果该函数的 return 值在 if 语句中的某处使用,则该 if 语句块也不会执行。