[JavaScript]JS由来
JavaScript最早由Netscape公司开发
JavaScript的发展历程
我们知道Windows桌面程序是可以交互的,用户可以点击菜单、按钮、下拉列表等控件,并通过消息机制来响应用户操作。 而最早的网页只是静态浏览,为了支持用户交互,浏览器开发商如Netscape和Microsoft相继都开发了自己的脚本语言,可以嵌入网页直接执行。 Netscape管理层希望这个语言像Java,因此取名JavaScript,在其Navigator 2.0浏览器中开始支持。而微软的脚本语言取名JScript,首先内置于IE3.0。 市场上还有一些其他的脚本语言版本。为了统一这些不同的版本,国际标准化组织ECMA对此进行了标准化,也就是ECMAScript,其后得到了行业的广泛支持。
ECMAScript和JavaScript的关系是,前者是语言规范,而后者是一个具体实现。
JavaScript之于Java的语言定位大体上是Java用来开发服务器和组件,而JavaScript保持简单易用来完成客户端功能,就好比微软当时的C++和VBScript的关系一样。
JavaScript虽然由于市场原因取名Java,但其实更像C和Self语言的后代。JavaScript的总体设计思路如下:
- 类C语言风格的语法
- 借鉴了Java的垃圾回收机制
- 类Self语言风格的基于原型(Prototype)的OO(Object-Oriented)模型
JavaScript最初的版本由于设计和实现都很仓促,并非一门严谨的编程语言,有不少漏洞广为诟病。但是最重要的是能工作(it works!),而且由于浏览器的市场竞争和模仿,被快速广泛支持。从而形成了事实上的语言标准。
当然JavaScript本身也随着Web一起演进而变得更为成熟和强大。在客户端领域击败了Java Applet、VBScript乃至其后起之秀Flash的ActionScript,是如今无可置疑的Web客户端第一编程语言,并开始向系统级语言扩展(NodeJS)。
JavaScript语言标准的当前最新版本是ECMAScript6,发展历程大致如下:
- 1995: JavaScript出生,小名叫LiveScript。
- 1997: ECMAScript标准确立。
- 1999: ES3出现,与此同时IE5风靡一时。
- 2000–2005: XMLHttpRequest也就是AJAX大获流行,给了JS第2次生命。
- 2009: ES5出现,(就是我们大多数人现在使用的)例如
forEach
,Object.keys
,Object.create
以及JSON标准。 - 2015: ES6/ECMAScript2015出现。主要是一些语法糖(好的语法改进),但缺少功能突破。
JavaScript的意外成功让人想起一个道理:聪明不如幸运,勤奋不如眼光。
什么是DOM
JavaScript最主要的操作对象毫无疑问是HTML文档,我们使用面向对象的方法来对文档内容进行抽象和概念化,以便于程序对其进行操作。这样的文档对象模型就是DOM(Document Object Model),本质上是一种应用程序接口(API)。
HTML文档的DOM结构和XML的DOM结构类似,都是一种树形结构。树的根节点就是document
,然后有父节点、子节点、祖先、后代、兄弟节点这些关系。
什么是BOM
JavaScript除了要能操作文档,还需要能操作浏览器,比如获取浏览器窗口大小,或者刷新页面。和DOM类似,浏览器也提供了对象模型来支持JS的访问。这个模型就是BOM(Browser Object Model)。
BOM主要包含如下6个对象:
- window对象,它是BOM的根对象,其它的BOM对象都是windows对象的属性
- document对象表示浏览器中加载页面的文档对象,而这个对象也就是DOM模型的根对象
- location对象包含了浏览器当前的URL信息
- navigator对象包含了浏览器本身的信息
- screen对象包含了客户端屏幕及渲染能力的信息
- history对象包含了浏览器访问网页的历史信息。
JavaScript只有通过调用BOM/DOM API才能赋予网页文档动态交互特性,才能真正使得HTML变成动态的HTML。
[JavaScript]JS由来的更多相关文章
- Seajs是什么及sea.js 由来,特点以及优势
Seajs是什么及sea.js 由来,特点以及优势 这篇文章主要介绍了Seajs的相关知识和和学习心得,适合刚接触SeaJS的同学,需要的朋友可以参考下,有更好的新手教程或文档,欢迎推荐.分享 1 ...
- 【转】关于URL编码/javascript/js url 编码/url的三个js编码函数
来源:http://www.cnblogs.com/huzi007/p/4174519.html 关于URL编码/javascript/js url 编码/url的三个js编码函数escape(),e ...
- 关于URL编码/javascript/js url 编码/url的三个js编码函数
关于URL编码/javascript/js url 编码/url的三个js编码函数escape(),encodeURI(),encodeURIComponent() 本文为您讲述关于js(javasc ...
- javascript(js)小数精度丢失的解决方案
原因:js按照2进制来处理小数的加减乘除,在arg1的基础上 将arg2的精度进行扩展或逆扩展匹配,所以会出现如下情况. javascript(js)的小数点加减乘除问题,是一个js的bug如0.3* ...
- paip.java 以及JavaScript (js) 的关系以及区别
paip.java 以及JavaScript (js) 的关系以及区别 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http:// ...
- JavaScript js无间断滚动效果 scrollLeft方法 使用模板
JavaScript js无间断滚动效果 scrollLeft方法 使用模板 <!DOCTYPE HTML><html><head><meta charset ...
- JavaScript(js)/上
JavaScript(js) ECMA-----定义的基础语法 DOM------document object model BOM------Browser object model Jav ...
- 【HANA系列】SAP HANA XS使用JavaScript(JS)调用存储过程(Procedures)
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS使用Jav ...
- Atitit. Java script 多重多重catch语句的实现and Javascript js 异常机制
Atitit. Java script 多重多重catch语句的实现and Javascript js 异常机制 1. 语法错误(ERROR)和运行期错误(Exception) 1 2. 错误类型判断 ...
随机推荐
- Centeros7 环境相关问题
服务处理命令 systemctl start mariadb #启动MariaDB systemctl stop mariadb #停止MariaDB systemctl restart mariad ...
- Discuz对不起,您安装的不是正版应用的解决办法
方法三(2014年新增最简单方法.) .打开/source /function/function_cloudaddons.php这个文件,2.搜索:cloudaddons_validator,3.一般 ...
- 【转】JavaScript 经常忽略的 7 个基础知识点
原文转自:http://bbs.html5cn.org/thread-83442-1-1.html 1. 在 String.prototype.replace 方法中使用 /g 和 /i标志位 令很多 ...
- System.Collections.Generic的各容器类的用法
演示System.Collections.Generic的各容器类的用法. 包括:Dictionary,KeyValuePair,SortedDic tionary,SortedList,HashSe ...
- sql server 中xml 数据类型的insert、update、delete
近日对SQL操作XML作了如下整理: 1.插入 XML DECLARE @myDoc XMLSET @myDoc = '<Root> <ProductDescription Prod ...
- xss跨站脚本测试
测试的时候会涉及到xss测试,下面简要整理下xss的知识 xss跨站脚本特点就是能注入恶意的HTML/JS代码到用户浏览器,劫持用户会话 常用alert来验证网站存在漏洞 如果确认存在漏洞,会随着注入 ...
- <mate>
1.<meta http-equiv="X-UA-Compatible" content="IE=edge"> 以最高级别的可用模式显示内容 有些因 ...
- kindeditor本地上传报错,只限初学者
困扰了我三天的问题,话说百度真的害死人啊,百度上有说路劲错了的,有说包没导的,有说还要改plugins里面的文件的!其实这个都不用动,也有说服务器问题的,还有说缓存的,还有说是ecplise的,反正我 ...
- CSS应用心得
单纯Html配合CSS网页 下面用程序来实际总结一下 首先,在写程序的应该具有一个良好的编程习惯. 第一:排版,拥有一个良好的排版,有助于我们能够快速的理解以及阅读程序: 第二:注释,就如以下程序,作 ...
- 解决 502、504 Gateway Time-out(nginx)
一.504 Gateway Time-out问题常见于使用nginx作为web server的服务器的网站 我遇到这个问题是在升级discuz论坛的时候遇到的 一般看来, 这种情况可能是由于nginx ...