引发错误时函数返回什么?

Xin*_* He 5 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
}
Run Code Online (Sandbox Code Playgroud)

Luk*_*ili 5

引发错误时,如果未使用try ... catch块捕获该错误,则作用域执行只会停止。

该函数不返回任何内容,如果在if语句中的某个位置使用了该函数的返回值,则该if语句块也不会执行。