JavaScript---网络编程(5)-自定义对象Json、Dom模型概念讲解-1

简介: 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 演示结果:

image.png



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的了解。


(最下面部分未画出)对象树如下:

代码随便写写哒、

image.png


代码:

<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>


目录
相关文章
|
1月前
|
JavaScript 前端开发
如何在 JavaScript 中使用 __proto__ 实现对象的继承?
使用`__proto__`实现对象继承时需要注意原型链的完整性和属性方法的正确继承,避免出现意外的行为和错误。同时,在现代JavaScript中,也可以使用`class`和`extends`关键字来实现更简洁和直观的继承语法,但理解基于`__proto__`的继承方式对于深入理解JavaScript的面向对象编程和原型链机制仍然具有重要意义。
|
1月前
|
Web App开发 JavaScript 前端开发
如何确保 Math 对象的方法在不同的 JavaScript 环境中具有一致的精度?
【10月更文挑战第29天】通过遵循标准和最佳实践、采用固定精度计算、进行全面的测试与验证、避免隐式类型转换以及持续关注和更新等方法,可以在很大程度上确保Math对象的方法在不同的JavaScript环境中具有一致的精度,从而提高代码的可靠性和可移植性。
|
1月前
|
JSON 前端开发 JavaScript
JavaScript中对象的数据拷贝
本文介绍了JavaScript中对象数据拷贝的问题及解决方案。作者首先解释了对象赋值时地址共享导致的值同步变化现象,随后提供了五种解决方法:手动复制、`Object.assign`、扩展运算符、`JSON.stringify`与`JSON.parse`组合以及自定义深拷贝函数。每种方法都有其适用场景和局限性,文章最后鼓励读者关注作者以获取更多前端知识分享。
19 1
JavaScript中对象的数据拷贝
|
1月前
|
JavaScript 前端开发 图形学
JavaScript 中 Math 对象常用方法
【10月更文挑战第29天】JavaScript中的Math对象提供了丰富多样的数学方法,涵盖了基本数学运算、幂运算、开方、随机数生成、极值获取以及三角函数等多个方面,为各种数学相关的计算和处理提供了强大的支持,是JavaScript编程中不可或缺的一部分。
|
9天前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
47 17
|
20天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
21天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
43 10
|
23天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
46 10
|
23天前
|
存储 监控 安全
云计算与网络安全:云服务、网络安全、信息安全等技术领域的融合与挑战
本文将探讨云计算与网络安全之间的关系,以及它们在云服务、网络安全和信息安全等技术领域中的融合与挑战。我们将分析云计算的优势和风险,以及如何通过网络安全措施来保护数据和应用程序。我们还将讨论如何确保云服务的可用性和可靠性,以及如何处理网络攻击和数据泄露等问题。最后,我们将提供一些关于如何在云计算环境中实现网络安全的建议和最佳实践。
|
24天前
|
监控 安全 网络安全
网络安全与信息安全:漏洞、加密与意识的交织
在数字时代的浪潮中,网络安全与信息安全成为维护数据完整性、保密性和可用性的关键。本文深入探讨了网络安全中的漏洞概念、加密技术的应用以及提升安全意识的重要性。通过实际案例分析,揭示了网络攻击的常见模式和防御策略,强调了教育和技术并重的安全理念。旨在为读者提供一套全面的网络安全知识框架,从而在日益复杂的网络环境中保护个人和组织的资产安全。