JavaScript简介入门基础知识_简介使用帮助

本篇文章希望可以从JavaScript的技术的背景、原理和设计出发,把知识的内容呈现出来。这种形式适用于有体系和源流的知识,比较适合系统学习和理解。JavaScript诞生与1995年,当时的主要目的之一是处理以前由服务器端语言(如Perl)负责的一些验证操作。在JavaScript之前,必须把表单数据发送到服务器端才能确定用户是否没有填写某个必填域,Net

JavaScript简介入门基础知识

本篇文章希望可以从JavaScript的技术的背景、原理和设计出发,把知识的内容呈现出来。这种形式适用于有体系和源流的知识,比较适合系统学习和理解。

JavaScript简介入门基础知识_简介使用帮助

JavaScript诞生与1995年,当时的主要目的之一是处理以前由服务器端语言(如Perl)负责的一些验证操作。在JavaScript之前,必须把表单数据发送到服务器端才能确定用户是否没有填写某个必填域,Netscape Navigator希望通过JavaScript来解决这个问题。想要全面理解和掌握JavaScript,关键在于弄清楚他的本质、历史和局限性。 ————《JavaScript高级程序设计(第三版)》 

 

JavaScript简史

在Web日益流行的同时,人们对客户端脚本语言的需求也越来越强烈,当时就职于Netscape公司的Bredan Erich开始着手计划于1995年2月发布的NetscapeNavigator 2开发一种名为LiveScript的脚本语言————该语言将同时在浏览器和服务器中使用(它在服务器上的名字是liveWire),Netscape和Sun公司建立了一个开发联盟,在发布前夕,Netscape为了搭上媒体热炒的Java的顺风车,临时把LiveScript改名为JavaScript。

由于JavaScript1.0的大获成功,Netsca在Netscape Navigator 3中发布了JavaScript1.1, 微软也在其发布不就后在IE3中发布了JScript的JavaScript实现, 微软在1996年8月进入web领域标志这JavaScript作为一门语言,向前迈进了一大步。

1997年, 以JavaScript1.1为蓝本的建议被提交给了欧洲计算机制造商协会(ECMA, European Computer Manufactures Association),该协会指定TC39技术委员会(TC39, Technical Committee #39)负责“标准化一种通用、跨平台、供应商中立的脚本语言的语义和语法。 TC39经过数月的努力完成了ECMA-262的新脚本语言的标准。

第二年,ISO/IEC(International Organization for Standardization and International Electrotechnical Commission)也采用了ECMAScript作为标准(即ISO/IEC-16262),自此以后,浏览器开发商就开始致力于将ECMAScript作为各自JavaScrip实现的基础。

JavaScript的实现

虽然JavaScript和ECMAScript经常被人们表达相同的含义,单JavaScript比ECMA-262中规定的多得多,一个完整的JavaScript应该由下列三个不同的部分组成

  • 核心(ECMAScript)
  • 文档对象模型(DOM)
  • 浏览器对象模型(BOM)

ECMAScript

ECMA-262定义的EMCAScript与浏览器没有依赖关系,ECMA定义的制式这么语言的基础,在此基础上可以构建更完善的脚本语言。Web浏览器只是ECMAScript实现可能的宿主环境之一,宿主环境不仅提供基本的ECMAScript实现,同时也会提供该原因的扩展,以便语言与环境之间对接交互,而这些扩展,如DOM,则利用ECMAScript的核心类型和语法提供更多具体的功能,以便实现针对环境的操作,其他宿主环境包括Node, Adobe Flash。

ECMAScript就是对实现该标准规定的各个方面的语言的标书,Javascript实现了EMCAScript, Adobe ActionScript同样也实现了ECMAScript。

文档对象模型(DOM)

DOM是针对XML但经过扩展的HTML应用程序的编程接口。DOM把整个页面映射为一个多层节点结构,HTML页面中的每个组成部分都是某种类型的节点,这些节点又包含不同类型的数据,开发人员通过DOM可以轻松地删除、添加、替换或者修改任何节点。

DOM级别

DOM0级: IE4.0和Netscape Navigator4.0最初支持的DHTML。

DOM1级:(DOM Level1)于1998年10月成为w3c推崇标准。DOM1级由连个模块组成:DOM Core和DOM HTML。DOM Core规定的是如何映射基于XML的文档结构,DOM HTML实在DOM Core的基础上加以扩展,添加了针对HTML的对象和方法。

DOM2级:在DOM1的基础上DOM2引入了更多的交互能力,也支持了更高级的XML特性。DOM2将DOM分为更多具有联系的模块。DOM2级在原来DOM的基础上又扩充了鼠标、用户界面事件、范围、遍历等细分模块,而且通过对象接口增加了对CSS的支持。DOM1级中的DOM核心模块也经过扩展开始支持XML命名空间。在DOM2中引入了下列模块,在模块包含了众多新类型和新接口:

  • DOM视图(DOM Views):定义了跟踪不同文档视图的接口
  • DOM事件(DOM Events):定义了事件和事件处理的接口
  • DOM样式(DOM Style):定义了基于CSS为元素应用样式的接口
  • DOM遍历和范围(DOM Traversal and Range):定义了遍历和操作文档树的接口

DOM3级:进一步扩展了DOM,引入了以统一方式加载和保存文档的方法,它在DOM Load And Save这个模块中定义;同时新增了验证文档的方法,是在DOM Validation这个模块中定义的。


DOM3进一步扩展了DOM,在DOM3中引入了以下模块:

  • DOM加载和保存模块(DOM Load and Save):引入了以统一方式加载和保存文档的方法
  • DOM验证模块(DOM Validation):定义了验证文档的方法
  • DOM核心的扩展(DOM Style):支持XML 1.0规范,涉及XML Infoset、XPath和XML Base


浏览器对象模型(BOM)

一个网页是由html来搭建结构的,通过css来定义网页的样式,而JavaScript赋予了页面的行为,通过它我们可以与页面进行交互,实现页面的动画效果等等。那javascript究竟通过什么来实现的呢?通过ECMAScript这个标准,我们可以编写程序让浏览器来解析,利用ECMAScript,我们可以通过BOM对象(即browser object model)来操作浏览器窗口、浏览器导航对象(navigator)、屏幕分辨率(screen)、浏览器历史(history)、cookie等等。但这个通过BOM来实现的交互远远不够。要实现页面的动态交互和效果,操作html才是核心。那如何操作html呢?对,就是DOM,简单的说,DOM给我们提供了用程序来动态控制html的接口,也就是早期的DHTMl的概念。因此,DOM处在javascript赋予html具备动态交互和效果的能力的核心地位上。

海计划公众号
(0)
上一篇 2020/03/23 01:37
下一篇 2020/03/23 01:37

您可能感兴趣的内容

  • antd中select下拉框值为对象选中的问题入门指南_antd使用帮助

    使用antd中的select下拉框,遇到个小问题,后台管理系统中,使用下拉框,一般不会是简单的就直接使用select中的value值,而是会使用id或者value中文对应的keyword,并且这个在option中的value值也是可能重复的 1.效果图2.select相关代码我这里用的是reactlet list = [{title: ‘普通会员’,id:

    2020/03/23
  • primeng入门基础知识_一个极为完善的开源 Angular UI 组件库

    primeng入门基础知识 官方网址:https://www.primefaces.org/primeng GitHub:https://github.com/primefaces…

    2020/03/06
  • Js先回显图片再上传菜鸟攻略_上传小白指南

    平时开发时可能会遇到上传图片问题,但如果是上传图片,多数是先进行上传然后才能回显,今天给大家介绍一个简单的上传前先对图片进行回显的方式,仅用一小部分js代码即可实现js代码部分// 关于上传封面图片的回显function getobj(obj) {return document.getElementById(obj);}function upload(f){

    2020/03/30
  • MyDesy使用攻略_台湾灵感创意视觉资讯收集网

    MyDesy使用攻略 官方网址:https://www.mydesy.com/ 简介描述:台湾灵感创意视觉资讯收集网 MyDesy淘靈感是由两个字(My + Desy)所组成,强调…

    2020/03/10
  • Odometer.js使用攻略_js数字滚动插件

    Odometer.js使用攻略 官方网址:http://github.hubspot.com/odometer/docs/welcome/ GitHub:https://githu…

    2020/03/06
  • 在 Vue.js 中制作自定义选择组件小白指南_组件基础知识教程

    定制 select 标签的设计非常困难。有时候,如果不使用样式化的 div 和自定义 JavaScript 的结合来构建自己的脚本,那是不可能的。在本文中,你将学习如何构建使用完全自定义 CSS 设置样式的 Vue.js 组件。HTML<divclass="custom-select":tabindex="tabindex"@blur="

    2020/03/20
  • 如何删除JavaScript 数组中的虚值攻略教程_数组基础指南

    引用自 MDN:falsy(虚值)是在 Boolean 上下文中已认定可转换为‘假‘的值.JavaScript 在需要用到布尔类型值的上下文中使用强制类型转换(Type Conversion )将值转换为布尔值,比如:在条件语句或者循环语句中。falsy 有时写作 falsey在 JavaScript 中有很多方法可以从数组中删除元素,但是从数组中删除所有虚

    2020/03/30
  • 敏捷开发入门基础知识_开发小白攻略

    1、我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。2、即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。3、经常性的交付可以工作的软件,交付的间隔可以从几周到几个月,交付的时间间隔越短越好。4、在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。5、围绕被激励起来的人个来构建项目。给他们提供所需要的环境和支

    2020/03/31
  • NES.css入门基础_一款像素风格的 CSS 库

    NES.css入门基础 官方网址:https://bcrikko.github.io/NES.css GitHub:https://github.com/BcRikko/NES.c…

    2020/03/06
  • 微信小程序动态设置图片大小菜鸟教程_图片菜鸟攻略

    我们都知道微信小程序的组件image是用来显示图片的,它有一下几个属性:1、src 图片资源地址2、mode 图片裁剪、缩放的模式3、binderror 当错误发生时,发布到 AppService 的事件名,事件对象event.detail = {errMsg: ‘something wrong’}4、bi

    2020/03/23
  • Vue父子组件双向绑定传值的实现方法基础知识入门_组件菜鸟攻略

    Vue父子组件双向绑定传值的实现方法基础知识入门 从某方面讲,父组件传值给子组件进行接收,之后在子组件中更改是不允许的。你会发现vue也会直接报错,而在封装一些组件的时候,又希望做…

    2020/03/19
  • 网站图片优化的重要性与技巧方案使用帮助_图片作者: 转载菜鸟教程网

    我最近在网上看了好多网站,里边的漏洞连连,其他的就不说了,今天的主题是SEO优化中怎样优化图片,图片用优化吗?为什么要优化图片?优化图片能给网站带来多大的好处?所以就拿网站优化图片的角度来说吧,在日常网站SEO优化进程时,对图片成功的优化图片的SEO排名,也能够为网站带来不行小觑的拜访流量,因为搜索引擎也都专门编写了针对图片的蜘蛛程序。 1、图片名包括关键词

    2020/04/05
  • 从 React 历史的长河来聊如何理解虚拟DOM入门基础知识_dom基础指南

    文章首发自个人博客最近我发现很多面试题里面都有「如何理解虚拟 DOM」这个题,我觉得这个题应该没有想象中那么好答,因为很多人没有真正理解虚拟 DOM 它的价值所在,我这篇从虚拟 DOM 的诞生过程来引出它的价值以及历史地位,帮助你深入的理解它。什么是虚拟DOM本质上是 JavaScript 对象,这个对象就是更加轻量级的对 DOM 的描述。对,就是这么简单!

    2020/03/20
  • 一段监视 DOM 的神奇代码指南教程_dom攻略教程

    通过使用此模块,只需将鼠标悬停在浏览器中,即可快速查看DOM元素的属性。基本上它是一个即时检查器。将鼠标悬停在 DOM 元素上会显示其属性!自己尝试一下复制下面的整个代码块,并将其粘贴到浏览器 Web 控制台中。现在将鼠标悬停在你正在浏览的任何网页上。 看到了什么?(function SpyOn() {const _id = ‘spyon-container

    2020/03/23
  • 为什么网站安装SSL证书如此重要?指南教程_ssl基础教程

    在过去,大多数公司只有在敏感信息需要在网站之间传输时,才使用SSL证书。例如,当×××输入用户名和密码来登录他们的账户时,或者当购物者在商业站点上输入信用卡信息时,使用SSL证书是非常常见的。越来越多地***在获得窃取个人信息,比如说,去年6月起,绍兴市越城区公安分局网警大队陆续接到多位市民报案,称他们的手机几乎每天都会在毫不知情的情况下,被添加不同微博好友

    2020/03/26
  • tinymce与prism代码高亮实现及汉化的配置小白教程_代码使用帮助

    简单介绍:TinyMCE是一个轻量级的基于浏览器的所见即所得编辑器,由JavaScript写成。它对IE6+和Firefox1.5+都有着非常良好的支持。功能方强大,并且功能配置灵活简单。另一特点是加载速度非常快的。最重要的是,TinyMCE是一个根据LGPL license发布的自由软件,你可以把它用于商业应用,好了不多说,想了解更多自行百度,我们进入正题

    2020/04/05