javascrit2.0完全参考手册(第二版) 第1章第2节:javascript的历史和使用
javascript曾经带给人许多误解,例如如果你不了解它的历史,那么你可能困惑它和java有什么关系,其实它们一点关系都没有。网景公司1995年在Navigator 2.0 中引入这门语言时它叫LiveScript,当时主要用来验证表单。后来被重命名为javascript,因为想借助java的魅力成为构建web程序的主流语言。不幸的是,因为它里面含有java,人们常常认为它是java的精简版。事实上js仅仅模糊的像java,它在语法上和C、Perl、Python也相似。
尽管它的名字引起很大的困惑,但是还是被浏览器开发商接受了。在网景公司把js引入它们2.0的浏览器的时候,微软也把类似的语言引入ie3.0,并命名为JScript。Opera公司从3.x的浏览器也开始支持js。许多其他的浏览器也开始支持js。后来浏览器开发商开始扩展js,于是形成了各种版本的js或jscript.下表详细的列举了不同浏览器支持的js各种版本,不同版本支持的js特性全书都在讨论,附录B提供了js不同版本的特性。

因为js正在快速的改变,而且对跨平台的支持也不一致,因此要注意你使用的js的版本。因为不同的js支持不同的设计,开发者应该编写不同条件下的脚本代码,本书大多数都在讨论这个问题,详细内容看第23章。
因为跨浏览器的js给开发者带来了噩梦,因此标准的js诞生了,被称为ECMAScript(发音eck-ma-script),最新版是3.0的。大多数浏览器基本上完成支持ECMAScript,因为它的名字已经引起注意,大多数的开发者已经开始把它当做像js一样。
注意:js2.0和ECMAScript4.0会一起随着标准化而推进。随着网景公司的没落,什么时候实现这些版本的语言是不清楚的,到目前为止,浏览器还没有实现这个版本。但是本书会提到重要的不同点。
尽管ECMAScript的使用一直在提升,但是js的使用仍然面临挑战。ECMACscript首要考虑的是语言的核心特性如流程控制语句(如if,for,while等)和数据类型。但是js的一些对象集仍然和运行环境有关。这些对象,如window,navigator,history,screen等并不是ECMAScript的一部分。它们是传统的浏览器对象模型(Browser Object Model)或bom的集合。事实上浏览器有基本上相似的细节上不同的BOM对象集,这引起了很大的困惑并且不兼容其他浏览器。bom不兼容最严重的是在4.x版本的浏览器引入动态html或dhtml时。实际上没有像dhtml这样的技术。观点来自于推广4.x的浏览器,并且说动态的效果来自于html,css,js的组合。如果你在讨论dhtml,你其实是在讨论它们的一些交集,它并不是一个脱离js的全新的技术。
幸运的是W3C已经定义了一些标准的对象,用它们可以访问web页面控件如html元素和闭合的文本框架,css属性,甚至是xml元素。希望这样能消除dhtml兼容性的噩梦。它们被称为文档对象模型(Document Object Model)或简称dom。它定义了操作标记行语言html元素的标准方式。然而并没有说什么是传统的对象模型的一部分和什么是dom,还有dom实现的不同。幸运的是现在的浏览器开始抛弃不兼容的特性,页面对象定义的越来越好了,详细的dom信息请看第10章或 www.w3.org/DOM 。
由ECMAScript制定的核心js,浏览器对象、文档对象提供了各种特性。但是除了核心部分,其他的在不同浏览器之间都有一些不同。
学习js的历史对于掌握js的使用很重要,因为它解释了js更改背后的动机。js作为一种强大的客户端技术,主要的使用方面有: 表单验证 页面渲染和特效 导航系统 基本的数学计算 动态文档 结构文档的操作 js也有它的限制,它不支持错误处理、强类型、构建大程序的特性。尽管它有这些缺点还让人误解,但是它却用途广泛。
javascrit2.0完全参考手册(第二版) 第1章第2节:javascript的历史和使用的更多相关文章
- javascrit2.0完全参考手册(第二版) 第2章第2节 语言特性
脚本执行顺序 js代码是按照它们在html中出现的顺序一行一行被解释的.这表明把函数定义和变量声明放到<head>中会很好.这保证了函数的代码和事件相关的处理程序不会立即执行. 大 ...
- javascrit2.0完全参考手册(第二版) 第2章第1节 基本定义
在这里,我们介绍一些将要使用的编程语言术语.表2-1提供了精确定义的概念. Table 2-1: 编程语言的基本术语 名字 定义 例子 Token令牌 最小的不可分割的词汇的语言单位.一个连续的字符序 ...
- javascrit2.0完全参考手册(第二版) 第1章第1节 在XHTML文档中增加javascript
通常,向文档中增加script脚本使用<script>元素,在HTML中增加脚本的方式有4中: (1)放到<script></script>块中: (2)<s ...
- javascrit2.0完全参考手册(第二版) 第2章第4节 基本的数据类型
每一个变量都有一个确定的类型表明它存储什么样的数据.js基本的数据类型有strings字符串.numbers数字.Booleans布尔类型.字符串是使用双引号或单引号包含的一串字符:数字包括整数或浮点 ...
- javascrit2.0完全参考手册(第二版) 第2章第3节 变量
变量存储数据.每个变量都有一个名字,叫做标识符.在js中声明变量使用var关键字,var为新的数据分配存储空间,或者指示一直标识符正在使用.声明变量非常简单: var x; 这个语句告诉解释器一个新的 ...
- Spring Security 5.0.x 参考手册 【翻译自官方GIT-2018.06.12】
源码请移步至:https://github.com/aquariuspj/spring-security/tree/translator/docs/manual/src/docs/asciidoc 版 ...
- Kali Linux Web渗透测试手册(第二版) - 1.3 - 靶机的安装
Kali Linux Web渗透测试手册(第二版) - 1.3 - 靶机的安装 一.配置KALI Linux和渗透测试环境 在这一章,我们将覆盖以下内容: 在Windows和Linux上安装Virt ...
- CSAPP深入理解计算机系统(第二版)第三章家庭作业答案
<深入理解计算机系统(第二版)>CSAPP 第三章 家庭作业 这一章介绍了AT&T的汇编指令 比较重要 本人完成了<深入理解计算机系统(第二版)>(以下简称CSAPP) ...
- Kali Linux Web渗透测试手册(第二版) - 1.0 - 渗透测试环境搭建
一.配置KALI Linux和渗透测试环境 在这一章,我们将覆盖以下内容: 在Windows和Linux上安装VirtualBox 创建一个Kali Linux虚拟机 更新和升级Kali Linux ...
随机推荐
- WCF批量打开服务
WCF服务.利用循环,读取配置文件,打开所有的代理服务 和关闭代理服务的方法 //list列表 ,用于存储打开的服务列表 List<ServiceHost> _host = new Lis ...
- CF731C Socks并查集(森林),连边,贪心,森林遍历方式,动态开点释放内存
http://codeforces.com/problemset/problem/731/C 这个题的题意是..小明的妈妈给小明留下了n只袜子,给你一个大小为n的颜色序列c 代表第i只袜子的颜色,小明 ...
- LoadRunner 脚本学习 -- 随机函数运用
直接上码 Action() { int randnum; randnum = rand()%+; lr_output_message("随机得到的数是:%d", randnum); ...
- HDFS & MapReduce异构存储性能测试白皮书
- 在CSDN中添加友情连接
<a bref='http://www......'>友情连接</a><br/> <a bref='http://www......'>友情连接2< ...
- 设置type为file的input标签选择图片类型
设置能选择各种类型的图片如:png,jpg <input id="file" name="file" type="file" acce ...
- jQuery事件和JavaScript事件
1.JavaScript事件: 属性 当以下情况发生时,出现此事件 FF N IE onabort 图像加载被中断 1 3 4 onblur 元素失去焦点 1 2 3 onchange 用户改变域的内 ...
- favicon的制作
在head中插入如下标签: <link rel="shortcut icon" href="favicon.ico" />.然后把图标命名为favi ...
- CDN(内容分发网络)是什么?
尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定.其目的是使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度. 解决CDN缓 ...
- jQuery跨域
其实jQuery跨域很简单很简单,你记住格式就好,跨域的原理请参考 <jsonp跨域> jQuery跨域代码: $.ajax({ url:'https://suggest.taobao.c ...