JavaScript判断对象类型及节点类型、节点名称和节点值
一、JavaScript判断对象类型
1、可以使用typeof函数判断对象类型
function checkObject1(){
var str="str";
console.log(typeof(str))//输出"string";
console.log(typeof(str)=="string")//输出true;
}
2、使用对象的构造函数属性(constructor),来判断对象的类型:
function checkObject2(){
var str ="str";
console.log(str.construtor=="string")//输出true
}
3、两者的区别
typeof函数判断的对象类型只能是:
(1)boolean
(2)function
(3)number
(4)object
(5)string
(6)undefined
construtor属性的用法可以判断一个复杂的类型。比如
//复杂类型的对象,判断其类型
function User(name , age){
this.name=name;
this.age=age;
}
function checkComplexObj(){
var s='a string';
var arr=[];
var obj=new Object();
var usr=new User();//自定义对象
console.log( 's.constructor==String :'+ (s.constructor==String));//输出true
console.log( 'arr.constructor==Array :'+ (arr.constructor==Array));//输出true
console.log( 'obj.constructor==Object :'+ (obj.constructor==Object));//输出true
console.log( 'usr.constructor.name==User :'+ (usr.constructor.name==User));//输出true
}
二、使用JavaScript判断节点类型、节点名称和节点值
1、节点类型的分类
| 节点类型 | 说明 | 值 |
|---|---|---|
| 元素节点 | 每一个HTML标签都是一个元素节点,如 <div> 、 <p>、<ul>等 | 1 |
| 属性节点 | 元素节点(HTML标签)的属性,如 id 、class 、name 等。 | 2 |
| 文本节点 | 元素节点或属性节点中的文本内容。 | 3 |
| 注释节点 | 表示文档注释,形式为<!-- comment text -->。 | 8 |
| 文档节点 | 表示整个文档(DOM 树的根节点,即 document ) | 9 |
2、使用JavaScript判断节点类型,节点名称和节点值
<!--使用javascript判断节点类型-->
<div id="oneDiv">一段文本</div><!--注释文本-->
<script type="text/javascript">
var div = document.getElementById("oneDiv");
console.log(div.nodeType); //输出1,元素节点
var divText = div.firstChild;
console.log(divText.nodeType) //输出3,文本节点
var divAttr = div.getAttributeNode("id");
console.log(divAttr.nodeType) //输出2,属性节点
var comment = div.nextSibling;
console.log(comment.nodeType) //输出8,注释节点
</script>
<!--使用javascript判断节点名称-->
<div id="oneDiv">一段文本</div><!--注释文本-->
<script type="text/javascript">
var div = document.getElementById("oneDiv");
console.log(div.nodeName); //输出DIV,元素节点为标签大写
var divText = div.firstChild;
console.log(divText.nodeName) //输出#text,文本节点使用nodeName时永远为#text
var divAttr = div.getAttributeNode("id");
console.log(divAttr.nodeName) //输出id,属性节点为属性名
var comment = div.nextSibling;
console.log(comment.nodeName) //输出#comment,注释节点使用nodeName时永远为#comment
</script>
<!--使用javascript判断节点值-->
<div id="oneDiv">一段文本</div><!--注释文本-->
<script type="text/javascript">
var div = document.getElementById("oneDiv");
console.log(div.nodeValue); //输出null,元素节点对于nodeValue不支持
var divText = div.firstChild;
console.log(divText.nodeValue) //输出一段文本,文本节点输出文本值
var divAttr = div.getAttributeNode("id");
console.log(divAttr.nodeValue) //输出oneDiv,属性节点输出属性值
var comment = div.nextSibling;
console.log(comment.nodeValue) //输出注释文本,注释节点输出注释内容
</script>
JavaScript判断对象类型及节点类型、节点名称和节点值的更多相关文章
- JavaScript判断对象的类型
JavaScript判断对象的类型 最近阅读了一些关于JavaScript判断对象类型的文章.总结下来,主要有constructor属性.typeof操作符.instanceof操作符和Object. ...
- JavaScript中判断对象是否属于Array类型的4种方法及其背后的原理与局限性
前言 毫无疑问,Array.isArray是现如今JavaScript中判断对象是否属于Array类型的首选,但是我认为了解本文其余的方法及其背后的原理与局限性也是很有必要的,因为在JavaScrip ...
- Javascript 判断对象是否相等
在Javascript中相等运算包括"==","==="全等,两者不同之处,不必多数,本篇文章我们将来讲述如何判断两个对象是否相等? 你可能会认为,如果两个对象 ...
- javascript 判断对象类型
typeof typeof是一个一元运算符,它返回的结果 始终是一个字符串,对不同的操作数,它返回不同的结果. 此表总结了typeof所有可能的返回值: 操作数类型 返回值 undefined &qu ...
- JavaScript - 判断当前使用的浏览器类型
<script> window.onload = function() { // 判断当前使用的浏览器类型 var browserType = navigator.userAgent.to ...
- javascript判断对象是否为domElement
我们在写js代码时有时需要判断某个对象是不是DOM对象,然后再进行后续的操作,这里我给出一种兼容各大浏览器,同时又算是比较稳妥的一种方法. 要判断一个对象是否DOM对象,首先想到的无非就是它是否具有D ...
- javascript 判断对象的内置类型
判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法.在toString方法被调用时,会执行下面的操作步骤:1. 获取this对象的[[Class ...
- [转] javascript 判断对象是否存在的10种方法总结
[From] http://www.jb51.net/article/44726.htm Javascript语言的设计不够严谨,很多地方一不小心就会出错.举例来说,请考虑以下情况.现在,我们要判断一 ...
- JavaScript 判断对象中是否有某属性
判断对象中是否有某属性的常见方式总结,不同的场景要使用不同的方式. 一.点( . )或者方括号( [ ] ) 通过点或者方括号可以获取对象的属性值,如果对象上不存在该属性,则会返回undefined. ...
随机推荐
- 基于apache httpclient 调用Face++ API
简要: 本文简要介绍使用Apache HttpClient工具调用旷世科技的Face API. 前期准备: 依赖包maven地址: <!-- https://mvnrepository.com/ ...
- css盒子模型(3)
盒子模型 版权声明 本文原创作者:雨点的名字 作者博客地址:https://home.cnblogs.com/u/qdhxhz/ 在讲理论之前,我们先要知道网页设计中常听的属性名:内容(co ...
- [译文]React v16(新特性)
[译文]React v16(新特性) 查看原文内容 我们很高兴的宣布React v16.0发布了! 这个版本有很多长期被使用者期待的功能,包括: fragments (返回片段类型) error bo ...
- bzoj 3597: [Scoi2014]方伯伯运椰子
Description Input 第一行包含二个整数N,M 接下来M行代表M条边,表示这个交通网络 每行六个整数,表示Ui,Vi,Ai,Bi,Ci,Di 接下来一行包含一条边,表示连接起点的边 Ou ...
- Dubbo(一) 开始认识Dubbo,分布式服务框架
引言: 以前的车马很慢,一生只够爱一个人以前的网站人很少,一个单应用服务着一个人--------------------现在,动不动就谈什么高并发,千万级访问.单应用?BOOM!分分钟爆炸.于是,技术 ...
- 使用jQuery制作一个简易的购物车结算流程
因为今天下午时候在网上买了东西,在结算界面的时候突发奇想的也想自己动手做一个结算界面,当然了,只是一个最简易的结算界面,有商品数量的加减,有单价和小计,单个多个删除,全选和区县全选等等一些小功能,我在 ...
- 由linux命令谈学习操作系统的重要性
linux命令妙趣横生,喜欢敲命令行的人会深有体会,但是没有系统学习过操作系统的话,很多命令还是难以理解的.讲实在话,大多数linux爱好者常敲的都是这些方面的: 文件系统 磁盘 网络 系统状态 账户 ...
- gitlab 接入 openldap、AD
=============================================== 20171009_第2次修改 ccb_warlock === ...
- JS 中 cookie 的使用
1.cookie 是什么? ①.cookie 是存储于访问者计算机中的变量.每当一台计算机通过浏览器来访问某个页面时,那么就可以通过 JavaScript 来创建和读取 cookie. ②.实际上 c ...
- Python 项目实践三(Web应用程序)第四篇
接着上节继续学习,本章将建立用户账户 Web应用程序的核心是让任何用户都能够注册账户并能够使用它,不管用户身处何方.在本章中,你将创建一些表单,让用户能够添加主题和条目,以及编辑既有的条目.你还将学习 ...