有一點(diǎn)不是很理解關(guān)于try...catch
明明前邊用if判斷就可以把是否為元素類型判斷出來了,就算是自己寫的a={nodeType:1}頁可以正確判斷了,為什么不直接寫else{return false};而是還要寫try catch 語句呢。
明明前邊用if判斷就可以把是否為元素類型判斷出來了,就算是自己寫的a={nodeType:1}頁可以正確判斷了,為什么不直接寫else{return false};而是還要寫try catch 語句呢。
2015-12-17
舉報
2015-12-17
因為如果 代碼出錯,整個程序就會停止,他代碼放到try里 ?能正確執(zhí)行就會正確執(zhí)行,如果報錯就會進(jìn)入catch里面,代碼還是會向后執(zhí)行。不會影響整個程序。如果直接放到if里的話 ?if里的代碼報錯就算結(jié)束了 ?else里的return false是不會執(zhí)行的。
2015-12-17
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;}
就各種情況都能判斷了呀。