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

时间:2017-02-21 21:10:29

标签: javascript return throw

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

  1. 什么是“抛出新的错误()”返回?未定义?
  2. 如果抛出错误,“if”的代码块会发生什么?
  3. 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
    }
    

2 个答案:

答案 0 :(得分:5)

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

该函数没有返回任何内容,如果在if语句的某处使用了该函数的返回值,那么if语句块也不会被执行。

答案 1 :(得分:2)

此特定代码块是尝试创建通用的跨平台选择器。如果您遇到错误,那么您所使用的任何浏览器都不支持任何给定的选择器匹配(并且可能被视为边缘浏览器,由#34使用;可接受的小"少数用户)。它将失败,并且可能在控制台中返回错误消息。但它很可能会默默地死去。

通过扩展,当最终的if()运行时,它也会默默地死去......

相关问题