我正在阅读专业Javascript For Web Developers一书,并看到了以下代码。我对此有一些疑问:
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
}
答案 0 :(得分:5)
当抛出错误时,如果未使用try...catch块捕获该错误,则范围执行将停止。
该函数没有返回任何内容,如果在if语句的某处使用了该函数的返回值,那么if语句块也不会被执行。
答案 1 :(得分:2)
此特定代码块是尝试创建通用的跨平台选择器。如果您遇到错误,那么您所使用的任何浏览器都不支持任何给定的选择器匹配(并且可能被视为边缘浏览器,由#34使用;可接受的小"少数用户)。它将失败,并且可能在控制台中返回错误消息。但它很可能会默默地死去。
通过扩展,当最终的if()运行时,它也会默默地死去......