课程
/前端开发
/HTML/CSS
/DOM探索之基础详解篇
明明前边用if判断就可以把是否为元素类型判断出来了,就算是自己写的a={nodeType:1}页可以正确判断了,为什么不直接写else{return false};而是还要写try catch 语句呢。
2015-12-17
源自:DOM探索之基础详解篇 4-2
正在回答
因为如果 代码出错,整个程序就会停止,他代码放到try里 能正确执行就会正确执行,如果报错就会进入catch里面,代码还是会向后执行。不会影响整个程序。如果直接放到if里的话 if里的代码报错就算结束了 else里的return false是不会执行的。
糖果罐 提问者
function isElement(obj){
if(obj&&obj.nodeType===1){
if(window.Node&&obj instanceof Node){
return true;
}
try{
testDiv.appendChild(obj);
testDiv.removeChild(obj);
catch(e){
return false;
额,可能我没有表述清楚,比如上例中,我觉得try catch 根本就没有必要,直接改成else{return false;}
就各种情况都能判断了呀。
李晓健
糖果罐 提问者 回复 李晓健
李晓健 回复 糖果罐 提问者
举报
要知道前端大牛都是从精通DOM开始的,全面讲解DOM的基础知识
2 回答try catch那一局里面的return到底是啥意思?
2 回答关于最后的立即执行函数和d.onreadystatechange=function(){}不知这样理解是否有错?
4 回答调用init函数不理解
1 回答还有 什么是掩藏门体露出的宽度 由于是专业词汇 我菜鸟 不是很懂
5 回答老师的代码有两句不理解 window.Node和 (elment instanceof Node)