JavaScript---网络编程(5)-自定义对象Json、Dom模型概念讲解
这节博客主要讲解Dom模型概念~和JSON的简单介绍
首先,还是先上out.js的代码:
function println(param){
document.write(param+"<br/>");
}
function print(param){
document.write(param);
}
什么是 DOM?
DOM 是 W3C(万维网联盟)的标准。
DOM 定义了访问 HTML 和 XML 文档的标准:
“W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。”
W3C DOM 标准被分为 3 个不同的部分:
核心 DOM - 针对任何结构化文档的标准模型
XML DOM - 针对 XML 文档的标准模型
HTML DOM - 针对 HTML 文档的标准模型
HTML DOM 定义了所有 HTML 元素的对象和属性,以及访问它们的方法。
换言之,HTML DOM 是关于如何获取、修改、添加或删除 HTML 元素的标准。
在这里,我们学的是HTML-DOM。
什么是 JSON ?
JSON 比 XML 更小、更快,更易解析。
JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
JSON 是轻量级的文本数据交换格式
JSON 独立于语言 *,存储和交换文本信息的语法。类似 XML。
JSON 具有自我描述性,更易理解
* JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
JSON - 转换为 JavaScript 对象
JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。
由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。
- JSON 使用 JavaScript 语法,但是 JSON 格式仅仅是一个文本。
文本可以被任何编程语言读取及作为数据格式传递。
JSON 语法规则
数据为 键/值 对。
数据由逗号分隔。
大括号保存对象
方括号保存数组
演示代码:
<html>
<head>
<title>自定义对象--json的用法演示</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<script type="text/javascript" src="out.js">
</script>
<!-- 用js来描述我们自己的对象,如类似java当中的Person类 -->
<!-- 方式3 -->
<script type="text/javascript">
//json---在JavaScript中封装数据对象
//map
var pp = {
//"name":"张三","age":"23", //key:value
name: "张三",
age: "23",//这句和上面一句等效---key的名称可以省略引号
getName: function(){
//"getName":function(){//这句和上面一句等效
return this.name;
}
};
println(pp.name + "," + pp.age);
println(pp["name"] + "," + pp["age"]);//表示可以访问pp对象中的“name”和“age”属性
//注意这里属性是名称而不是变量,所以必须用引用
println(pp.getName());//调用函数
println(pp["getName"]);//显示出函数的代码
println(pp["getName"]());//调用函数
var map = {
8: "张三",
3: "李四",
5: "Jack"
};
println(map["8"]); //原理同前。json中冒号前面的那个是key,后面的是value
println(map[8]); //8是数字,不可能是变量名,因此引号省略照样能解析出来
</script>
<script type="text/javascript">
var myObj = {
name:"张三丰",age:23
};
println(myObj.name+","+myObj["age"]);//分别用了两种读取属性的方式
</script>
<script type="text/javascript">
var myMap={
names:["Jack1","Jack2","Tom1","Tom2"],
nums:[10,20,30,40]
}
println(myMap.names[1]+","+myMap.nums[1]);
var myMap={
names:[{name:"Jack111"},{name:"Jack222"},{name:"Jack333"}]
}
println(myMap.names[1].name);
println(myMap.names[1]["name"]);//与上面的访问一样的
</script>
</body>
</html>
360浏览器8.1 演示结果:
Dom模型概念讲解
DOM: Document Object Model 文档对象模型
主要用来将标记型文档(html,xml)封装成对象,并将标记型文档中的所有内容(标签、文本、属性等)都封装成对象
既然都封装成了对象,那么就可以通过这些对象很方便地操作这些文档内容,达到操作页面内容–页面显示。
DOM树中的几个名词:
结点(节点):dom树中的标签、文本和属性等都称为结点(节点).
元素:dom树中的标签。
子节点 父节点(元素) 兄弟
父结点
主要用来将标记型文档(html,xml)封装成对象,并将标记型文档中的所有内容(标签、文本、属性等)都封装成对象
既然都封装成了对象,那么就可以通过这些对象很方便地操作这些文档内容,达到操作页面内容–页面显示。
DHTML技术:
动态的HTML —-html + css + dom +javascript 配合使用,来做动态html页面
HTML—负责提供标签,同时用标签封装数据
CSS—-负责显示样式
dom—-把整个页面中的标签、属性和文字内容封装成对象。
js—–提供程序设计语言,for,while,if
我们可以通过这个对象树来加深对DOM的了解。
(最下面部分未画出)对象树如下:
代码随便写写哒、
代码:
<html>
<head>
<title>湖南城院</title>
</head>
<body>
<div>div区域</div>
<dl>
<dt>上层项目</dt>
<dd>下层项目</dd>
</dl>
<table>
<tr> <th>姓名</th> </tr>
<tr> <td>张三</td> </tr>
</table>
<form>
<input type="text">
</form>
<a href="1.html">查看</a>
</body>
</html>
window对象中的对象
window 对象:
代表浏览器中一个打开的窗口。
navigator 对象
包含关于 Web 浏览器的信息。
属性— 描述
appCodeName— 获取浏览器的代码名称。
appMinorVersion— 获取应用程序的次版本值。
appName —获取浏览器的名称。
appVersion —获取浏览器运行的平台和版本。
browserLanguage —获取浏览器的当前语言。
cookieEnabled— 获取客户端的永久 cookie 是否在浏览器中启用。永久
cookies— 是储存在客户端计算机上的。
cpuClass— 获取指示 CPU 等级的字符串。
onLine —获取表明系统是否处于全局脱机模式的值。
platform —获取用户的操作系统名称。
systemLanguage— 获取操作系统适用的默认语言。
userAgent —获取等同于 HTTP 用户代理请求头的字符串。
userLanguage —获取操作系统的自然语言设置。
演示代码:
<html>
<head>
<title>Bom模型演示----window对象中的对象</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<!--
window中的所有对象在调用时,可以省略: window.
-->
<script type="text/javascript" src="out.js">
</script>
<script type="text/javascript">
function windowObjDemo(){
var name = window.navigator.appName;//获取浏览器的名称。
//var version = window.navigator.appVersion;
var version = navigator.appVersion;//获取浏览器运行的平台和版本。
println(name+"----"+version);
var pro = location.protocol; //设置或获取 URL 的协议部分。
println(pro);
var addr = location.href;//设置或获取整个 URL 为字符串。
println(addr);
}
function windowObjDemo2(){
//location.href ="http://www.baidu.com";//点击按钮,跳转到百度
location.href ="5a.html";
}
function windowObjDemo3(){
history.forward();//从历史列表中装入下一个 URL。//相对定位-相对的下一个-相当于浏览器中的前进按钮
}
</script>
<input type="button" value="演示window中的对象1" onclick="windowObjDemo()" />
<input type="button" value="演示window中的对象2" onclick="windowObjDemo2()" />
<input type="button" value="演示window中的对象3" onclick="windowObjDemo3()" />
</body>
</html>
5a.html:
<html>
<head>
<title>aa</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<script type="text/javascript">
function windowObjDemo(){
history.back();//从历史列表中装入前一个 URL。---相对定位,相对的前一个。-相当于浏览器中的后退按钮
}
</script>
<input type="button" value="演示window中的对象" onClick="windowObjDemo()" />
</body>
</html>
这里很简单,就不贴浏览器演示结果图片了。
JavaScript---网络编程(5)-自定义对象Json、Dom模型概念讲解的更多相关文章
- JavaScript---网络编程(6)-Dom和Bom模型概念讲解(节点获取,window对象)
本节讲Dom和Bom模型概念讲解(节点获取,window对象). out.js: 写了2个输出到页面的函数. function println(param){ document.write(param ...
- JavaScript 创建和浅析自定义对象
在Js中,除了Array.Date.Number等内置对象外,开发者可以通过Js代码创建自己的对象. 目录 1. 对象特性:描述对象的特性 2. 创建对象方式:对象直接量.new 构造函数.Objec ...
- javascript基础编程の变量、对象、数据类型及函数
在web标准中.网页由结构.表现形式和行为三个部分组成. 结构标准---->XHTML: 表现形式标准----->CSS: 行为标准----->javascript: javascr ...
- c++ 网络编程(九)LINUX/windows-IOCP模型 多线程超详细教程及多线程实现服务端
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9661012.html 先讲Linux下(windows下在后面可以直接跳到后面看): 一.线程 ...
- 网络编程中select模型和poll模型学习(linux)
一.概述 并发的网络编程中不管是阻塞式IO还是非阻塞式IO,都不能很好的解决同时处理多个socket的问题.操作系统提供了复用IO模型:select和poll,帮助我们解决了这个问题.这两个函数都能够 ...
- 「JavaScript面向对象编程指南」对象
对象的属性名可加上引号,下面三行代码所定义的内容是完全相同的 var hero = { occupation : 1 }; var hero = { "occupation" : ...
- iOS网络编程解析协议三:JSON数据传输解析
作为一种轻量级的数据交换格式,正在逐步取代XML,成为网络数据的通用格式 基于JavaScript的一个子集 易读性略差,编码手写难度大,数据量小 JSON格式取代了XML给网络传输带来了很大的便利, ...
- 转载:Javascript面向对象编程原理 -- 理解对象
源地址:http://www.html-js.com/article/1717 虽然JavaScript中已经自带了很多内建引用类型,你还是会很频繁的需要创建自己的对象.JavaScript编程的很大 ...
- JavaScript面向对象编程指南(四) 对象
第4章 对象 4.1 从数组到对象 对象的组成:变量名.{}.用逗号分割的属性.用冒号分割的键/值对. var f={ name:'alen', // 可以在属性名上加引号 age:12 }; 对象文 ...
随机推荐
- Mysql JDBC 连接串参数说明
MySQL的 JDBC URL 格式 for Connector/J 如下例: jdbc:mysql://[host:port],[host:port].../[database][?参数名1][= ...
- 【实习记】2014-08-27堆排序理解总结+使用typedef指代函数指针
过程记录 4个月前C语言版的七大排序算法实践让我在写C++版时轻车熟路.特别是冒泡,插入,希尔,选择这四种排序不用调试即运行成功.输出的效果与C语言做的版本完全一样,其中令我印象深刻的是,co ...
- 【Android】 Sqlite3 not found
调试机没有sqlite3命令文件 导入即可 sqlite3 http://pan.baidu.com/s/1bohTMiz //(使用老版sqlite3需要导入libncurses.so文件至/sys ...
- Nigix快速上手注意事项
linux下,主要关于配置,包括主从,待续......
- php 相对路径中 及 绝对路径中 的一些问题
写本篇文章,是为了以后学习中遇到问题好解决 php的相对路径是以当前工作目录为基准的,并不是以当前处理的文件目录为基准,这样导致我们在开发过程中总会遇到一些问题. 但是如果我们使用绝对路径,就会导致后 ...
- 几个 JavaScript 奇技淫巧
#1使用双等号给布尔变量赋值,很容易联想到 var a = b || 123; 的写法 var a = b == 123;#2快速转换为布尔值 !!a#3防止页面被 iframe 调用 if(top ...
- 2016-10-31 reload
经历了创业公司的欠薪后,决定重新开始,从原本着力于如何快速入门与实现变更为巩固基础再出发. 2016-10-31
- [swift]可选类型
可选类型 <Swift权威指南>第2章千里之行始于足下——Swift语言基础,本章挑选了Swift语言的最基本特性加以介绍.尽管这些特性只占Swift全部特性的很少一部分,但却是所有的Sw ...
- qt 5 小练习 简易画板
如何在窗口上画线?用一根根线来拼凑图案呢? 想必大家都知道点的集合是线,而线的集合就是很多线啦,用线的集合我们能拼凑出许许多多的图案.于是我就要记录自己跟着老师的学习之路啦: 既然有集合的话,势必要用 ...
- Instruments --- 内存泄露
虽然iOS 5.0版本之后加入了ARC机制,由于相互引用关系比较复杂时,内存泄露还是可能存在.所以了解原理很重要. 这里讲述在没有ARC的情况下,如何使用Instruments来查找程序中的内存泄露, ...