抛出错误时函数 return 是什么 - Javascript
What is the function return when throwing an error - Javascript
我正在阅读 Professional Javascript For Web Developers 一书,看到了以下代码。我对此有一些疑问:
- "throw new Error()"return是什么意思?不明确的?
- 如果抛出错误,"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 语句块也不会执行。
我正在阅读 Professional Javascript For Web Developers 一书,看到了以下代码。我对此有一些疑问:
- "throw new Error()"return是什么意思?不明确的?
- 如果抛出错误,"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 语句块也不会执行。