热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Javascript高级编程学习笔记(1)

此系列文章,用于记录所学,如有错误欢迎指出。Javascript组成1.核心(ECMAScript)2.文档对象模型(DOM)3.浏览器对象模型(BOM) 1.核心(ECMAScr

此系列文章,用于记录所学,如有错误欢迎指出。


Javascript组成

1.核心(ECMAScript)

2.文档对象模型(DOM)

3.浏览器对象模型(BOM)

 


1.核心(ECMAScript)

ECMAScript说白了是定义Javascript的标准,而这种标准与浏览器并无依赖关系。

我们现在前端所使用的Javascript只是遵循这一标准的,以浏览器为宿主平台的脚本语言。

遵循这一标准的脚本语言都可以称之为js。

而js的宿主平台除了我们最常用的浏览器平台之外,还有node,和Adobe flash等。

 

而这一部分的主要内容,一般指的是js的数据类型,变量的声明,语法等

 


2.DOM 文档对象模型

Dom这个概念相信许多人都知道

那么它具体是啥呢?

我在看JS高编之前也是知道有dom节点,bom节点等。但这个dom到底是什么呢?

 

我根据书中的描述是这样理解dom的。

dom相当于是对xml拓展后的针对html的API。

这么说可能不太好理解,那么这样说吧。

dom先将html页面映射为一个多层的有许多节点的对象,然后dom向我们提供一个操作这些映射的节点的方法。

我们通过这些操作节点的API来操作页面中的节点。

而dom节点就是我们可以通过这些API操作的节点(我是这样理解的)

 

在知道dom大概是啥之后,另一个问题随之而来。

DOM的级别?

我之前也在许多地方见过类似于DOM0级,DOM2级这样的概念。

那这里的DOM级别又指的是什么呢?

我们都知道,不同的浏览器之间有兼容性问题。

这种不同浏览器之间的差异,在不同的浏览器的DOM对象之间当然也是存在的。

这里就是IE在搞事了,低版本ie不管是获取节点的样式,还是其他的dom操作都和我们现在常用的有所区别。

 

那么DOM级别就是一个针对DOM的标准的版本,意思就是DOM对象由W3C制定了一套所有浏览器DOM都应该遵守的标准。

然后这个标准随着时间的推移有着不同的版本,对应不同版本标准的DOM对象就分出了级别。

 

首先是DOM0级,我们常说onclick 这些用户事件是dom0级事件,然而实际上dom0级是不存在的,这个版本指的往往是最初的DHTML的那个版本。

后面对DOM的标准的更新都以此为参考点,所以有了DOM1、DOM2、DOM3。

 

然后是DOM1,这个版本的标准主要针对的是规范dom映射过后的文档结构。

主要分为了两个部分,第一个部分:DOM核心 用于规定如何映射html文档结构

第二个部分:DOMhtml 定义了一些针对html的对象和方法。

这个版本是没有规定用户事件的相关标准的,所以我们常说的只有DOM0级事件 DOM2级事件 而没有DOM1级事件。

 

其次是DOM2,这个版本针对的就是页面了

比如一些对css样式操作的支持,扩充了鼠标和用户事件,拓展支持XML命名空间

在这个版本主要分为以下几个板块:

1. DOM视图:用于跟踪文档

2.DOM事件:事件和时间的处理

3.DOM样式:操作CSS的样式接口

4.DOM遍历和范围:如何遍历文档树和操作文档树

 

最后是DOM3,这个版本扩充了一些键盘的用户事件

添加了加载和保存文档的方法。

新增验证文档的方法。

对dom核心进行拓展:支持XML1.0

 


3.BOM 浏览器对象模型

Bom类似于DOM,他两的区别从名字上我们就可以看出端倪。

DOM是针对操作文档树的API接口,那么BOM对象就是用于操作浏览器行为的。

BOM的主要功能有:

1.弹出新浏览器窗口

2.移动、缩放、关闭窗口

3.提供浏览器的详细信息(navigator)

 

4.提供页面详细信息(location)

 

5.提供用户屏幕分辨率等信息(screen)

 

6.对COOKIE的支持

7.XMLHttpRequest 和 ActiveXObject

用于上述操作的对象可以说都是BOM


推荐阅读
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • JavaWeb中读取文件资源的路径问题及解决方法
    在JavaWeb开发中,读取文件资源的路径是一个常见的问题。本文介绍了使用绝对路径和相对路径两种方法来解决这个问题,并给出了相应的代码示例。同时,还讨论了使用绝对路径的优缺点,以及如何正确使用相对路径来读取文件。通过本文的学习,读者可以掌握在JavaWeb中正确找到和读取文件资源的方法。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • React基础篇一 - JSX语法扩展与使用
    本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
author-avatar
lily-SweetDream_828
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有