我們經常使用nodetype==1判斷元素是否是乙個hmtlelement元素。頁面上的元素都是節點(node),有元素節點(element node)、屬性節點(attribute node)、文字節點(text node)等。w3c nodetype 的定義如下:
const unsigned short element_node = 1;
const unsigned short attribute_node = 2;
const unsigned short text_node = 3;
const unsigned short cdata_section_node = 4;
const unsigned short entity_reference_node = 5;
const unsigned short entity_node = 6;
const unsigned short processing_instruction_node = 7;
const unsigned short comment_node = 8;
const unsigned short document_node = 9;
const unsigned short document_type_node = 10;
const unsigned short document_fragment_node = 11;
const unsigned short notation_node = 12;
但如果我們自定義的物件也包含nodetype屬性呢?如下:
var obj = ;
function ishtmlelement(obj)
}ishtmlelement(obj);//true
以上ishtmlelement(obj)返回true,但obj明顯不是乙個html節點元素。下面通過物件特性及try-catch語句來判斷。
function ishtmlelement(obj)catch(e)
}var obj1 = ;
var obj2 = document.createtextnode("hello");
var obj2 = document.createelement("p");
ishtmlelement(obj1);//false
ishtmlelement(obj2);//false
ishtmlelement(obj3);//true
增加個函式判斷window和document的情況,函式名ishtmlcontrol
function ishtmlcontrol(obj) catch(e)}
JS判斷元素是否為陣列的方式
let a 1,2,3,4,5,6 let b let c 123 let d www let e array.isarray 能判斷乙個元素是否為陣列,如果是就返回true,否則就返回false console.log array.isarray a true console.log array....
判斷是否為陣列
在說明如何判斷乙個物件為陣列型別前,我們先鞏固下js的資料型別,js一共有六大資料型別 number string object boolean null undefined。除了前四個型別外,null 物件 陣列返回的都是object型別 對於函式型別返回的則是function,再比如typeof...
判斷是否為質數
程式接受兩個正整數的輸入,構成乙個閉區間,找出這個區間內的所有質數。判斷乙個數n是否為質數時,先對這個數開平方,隨後從2開始,迴圈到這個平行根,檢查其中的數能否整除數n,若能整除,則為合數,否則為質數。由於sqrt函式的返回值是double型別,為保證準確性 如sqrt 4 返回值可能是1.9999...