javascript简介
前言:
首先在学习JavaScript之前,我们有必要对JavaScript的过去有一定的了解,这样我们才能够正确的看待JavaScript的优点与缺点。在之前的开发中,我们往往需要关心ie6(目前ie6的使用用户量逐年降低,目前基本不需要考虑)下的开发兼容问题。在几年之前还有许多前端兄弟姐妹为了处理IE6的兼容问题各种头疼,但实际上如果我们了解javascript的发展历史之后,就会发现ie6为JavaScript的发展做出了多大的贡献。
JavaScript诞生于1992年,它出现时主要是为了处理浏览器网页表单验证问题(在此之前,如果需要完成该功能需要提交到服务器进行验证,当时拨号上网网速相当缓慢,导致与服务器的每一次数据交换事实上都成了对人们耐心的考验)。它既是一门非常简单的语言,又是一门非常复杂的语言。简单是因为想入行仅仅需要短时间内就能够学会,但如果想要学好,那需要很长的时间。
一、JavaScript历史
当时就职于Netscape公司的布兰登●艾奇(Brendan Eich)开发了一种LiveScript的脚本语言,为了赶在发布日期前完成LiveScript的开发,Netscape与Sun公司建立一个开发联盟。Netscape为了搭上媒体热炒Java的顺风车,临时把LiveScript改为JavaScipt。
JavaScript 1.0发布之后受到了广泛的关注,之后又发布了JavaScript 1.1。与此同时,微软决定与Netscape进行竞争,发布了Internet Explorer浏览器。随着微软产品的发布,意味着当时市场常存在3个不同的版本:Netscape中的JavaScript、Internet Explorer中的JScript和ScriptEase中的CEnvi。当时还没有标准的语法和特性,因此JavaScript标准化被提上了日程
1997年,以JavaScript 1.1为蓝本的建议被提交给了欧洲计算机制造商协会(ECMA,European Computer Manufacturers Association)。该协会指定39号技术委员会(TC39 Technical Commited #39)负责“标准化一种通用、跨平台、供应商中立的脚本语言的语法和语义”。多个公司的程序员组成TC39,共同开发完成了ECMA-262--定义了一种名为ECMASCRIPT的新脚本语言的标准。
二、javascript组成
JavaScript由三个不同的部分组成:核心(ECMAScript)、文档对象模型(DOM)、浏览器对象模型(BOM)。
ECMAScript组成由语法、类型、语句、关键字、保留字、操作符、对象。
DOM:文档对象模型是针对XML但经过扩展用于HTML的应用程序编程接口。DOM把整个页面映射为一个多层节点结构。最终由W3C(World Wide Web Consortium,万维网联盟)制作规则。
DOM级别:
DOM1级于1998年10月成为W3C的推荐标准,由DOM核心(DOM core)和DOM HTML。主要目标是映射
文档结构。DOM2级在原来DOM1级的有扩充了鼠标和用户界面事件、范围、遍历等细分模块。DOM3级则进一步扩 展了DOM,引入了统一方式加载和保存文档的方法。
浏览器支持:
微软在IE5中首次尝试实现DOM,但在IE5.5才算是真正支持DOM1级。随后IE6、IE7,并没有引入新的功能,直到
IE8才对DOM中的bug进行了修复。
BOM:IE3与Netscape Navigator3首先开始共同支持访问和操作浏览器窗口的对象(Browser Object Model)。BOM虽然在很早之前就被支持,但并没有规范标准,直到html5 BOM才有了完整的规范
三、javascript版本
(1)、ECMA-262第二版主要对第一版做了些修改,并没有新增任何功能。一般不使用该版本ECMAScript衡量兼容性
(2)、ECMA-262第三版才是对该标准真正的修改,增加了正则、控制语句、try...catch等语法。该版标志着ECMAScript成为了一门真正的编程语言
(3)、ECMA-262第四版对javascript进行全面的核捡修订,但由于变化太大,因此采用了ECMAScript 3.1版本来替代,只进行了小幅度的改动
(4)、ECMA-262第五版即ECMAScript 3.1,又称ECMAScript 5
(5)、ECMA-262第六版即2015 年 6 月正式发布了,2011 年,ECMAScript 5.1 版发布后,就开始制定 6.0 版了。因此,ES6 这个词的原意,就是指 JavaScript 语言的下一个版本。
三、概念介绍
JavaScript 是一门弱类型的动态解析型脚本编程语言。下面将介绍一些基本概念:
弱类型:不严格检查变量类型,允许类型转换
强类型:严格检查变量类型,不允许类型转换。如java
动态类型:运行时检查变量类型
静态类型:编译阶段就检查变量类型
解释型:程序不需要编译环境进行代码的编译,直到运行阶段,程序才会被解释成机器代码,每执行一次变编译一次,效率低,跨平台性好。
编译型:程序在执行之前需要一个专门的翻译过程,把程序编译为机器语言的文件,运行时直接使用编译的结果就行了。
标记语言:标记语言的存在就是用来被读取(浏览)的,而其本身是没有行为能力的,在标记语言里你会看到<和>这些尖括号,这是用来写出“层次”和”属性”的,换句话说,它是被动的。并不具备与访问者互动的能力
编程语言:它是具有逻辑性和行为能力,这是主动的。说通俗一点,它是有思想的