有一点不是很理解关于try...catch

来源:4-2 如何判断节点是元素节点

糖果罐

2015-12-17 11:07

明明前边用if判断就可以把是否为元素类型判断出来了,就算是自己写的a={nodeType:1}页可以正确判断了,为什么不直接写else{return false};而是还要写try catch 语句呢。

 
写回答 关注

2回答

  • 李晓健
    2015-12-17 11:11:22
    已采纳

    因为如果 代码出错,整个程序就会停止,他代码放到try里  能正确执行就会正确执行,如果报错就会进入catch里面,代码还是会向后执行。不会影响整个程序。如果直接放到if里的话  if里的代码报错就算结束了  else里的return false是不会执行的。

    糖果罐

    回复字数不能太多,看我下边下一个回答吧

    2015-12-17 11:27:00

    共 1 条回复 >

  • 糖果罐
    2015-12-17 11:25:39

    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;

      }

      return true;

      }

      return false;

      }

    额,可能我没有表述清楚,比如上例中,我觉得try catch 根本就没有必要,直接改成else{return false;}

    就各种情况都能判断了呀。

    糖果罐 回复李晓健

    恩,好的

    2015-12-17 12:56:03

    共 6 条回复 >

DOM探索之基础详解篇

要知道前端大牛都是从精通DOM开始的,全面讲解DOM的基础知识

98374 学习 · 238 问题

查看课程

相似问题