DOM里常見的三種節點類型(總共有12種,如docment):元素節點,屬性節點以及文本節點,例如<h2 class="title">head</h2>,其中h2是元素節點,class是屬性節點,head是文本節點,tagName和nodeName的語義是一樣的,都是返回所包含標簽的名稱,例如上面的h2標簽,都是返回h2,但是tagName只能在元素標簽上使用,而nodeName則可以在所有的節點上使用。
從DOM層次來看,nodeName是node 接口上的property,而tagName是element 接口上的property,所有的節點(元素節點,屬性節點,文本節點等12種)都繼承了node接口,而只有元素節點才繼承了element節點,因此nodeName比tagName具有更大的使用范圍。
可以說nodeName涵蓋了tagName,並且具有更多的功能,因此建議總是使用nodeName。