当前位置: 首页 > news >正文

[ 第一章] JavaScript 简史

1.1 JavaScript 的起源


 

  开发公司:Netscapt 公司 、Sun 公司

  在javascript 1.0 发布时,Netscape Navigator 主宰着浏览器市场,微软的IE 浏览器则扮演着追赶者的角色。微软在推出自己的VBScript 语言,同时以JScript 为名发布了JS的一个版本,赶上了Netscape的步伐。面对微软的竞争,Netscape 和 Sun 公司联合 ECMA (欧洲计算机制造商协会)对JavaScript 语言时行了标准化。于是出现了ECMAScript 语言,这是同一种语言的另一个名字。

  到了1996年,JavaScript 、ECMAScript 、JScript 已经站稳了脚跟。Netscape 与 微软公司都在各自第三版浏览器中不同程度地支持JavaScript 1.1 语言。

 注意:JavaScript 与 Sun公司开发的 Java 语言没有任何联系。这样命名大概是想让它更有系出名门的感觉。

  JavaScript 是一种脚本语言,通常只能通过Web 浏览器去完成一些操作而不能像普通意义上的程序那样运行。所以 JavaScript 脚本不像Java 和 C++ 等编译型程序那样用途广泛。不过,这种相对简单性也正是 JavaScript 语言的长处:比较容易学习和掌握,所以那些本身不是程序员,但希望通过简单的剪贴操作把脚本嵌入现有网页的普通用户很快就接受了JavaScript 。

 

1.2 DOM--(Document Object Model 文档对象模型) 


 

  什么是DOM ? 简单来说,DOM 是一套对文档的内容进行抽象和概念化的方法。

  D:Document 文档

  O: Object 对象

  M: Model 模型

 

1.3 浏览器战争


 

  Netscpe  Navigator 4 发布于1997.6  IE-4 发布于同年10月。两种浏览器都对它们的早期版本进行了许多改进,大幅提高扩展了DOM ,使能够通过 JavaScript 完成的功能大大增加。

  DHTML: " Dynamic HTML" (动态HTML)的简称。DHTML 并不是一项新的技术,而是描述 HTML CSS 和 JavaScript 技术结合的术语。

  不幸的是 NN4 和 IE4 浏览器使用的是两种不兼容的 DOM 。换句话说,浏览器制造商的目标一样,但他们解决 DOM 问题时采用的方法却完全不同。

浏览器之间的冲突:

  Netscape 公司的DOM 使用了专有元素,这些元素称为层(layer)。层有唯一的 ID ,JavaScript 代码需要像下面这样引用:

  document.layers['myelement']

  而在微软公司的 DOM 中这个元素必须像这样引用:document.all['myelements'];

 

  浏览器之间的冲突导致了一种很可笑的局面:程序员在写脚本时,必须知道它将运行的环境,在实际工作中许多代码不得不编写两次,一次为NN ,另一次为IE。DHTML 打开了一个充满机会的新世界,但想要进入的人却发现这是一个充满苦难的世界。没过多久,DHTML 就丛一个大热门变成一个人们不愿提起的名词,而对这种技术的评价也很快成 “喧传噱头” 和 ‘难以实现‘。

 

1.4 制定标准


 

  就在浏览器厂商以DOM 为武器展开营销大战的同时,W3C 不事声张地结合大家的优点推出了一个标准化的DOM。浏览器厂商们与W3C 携手制定新的标准。于1988年完成第一级DOM。

  崭新的起点:

    今天几乎所有的浏览器都内置了对DOM的支持。只要遵循DOM 标准,就可以放心大胆地去做,因为你的脚本在哪里都不会出现问题。

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/zhaoxiaowu/p/3674879.html

相关文章:

  • Hibernate学习二 2014.04.21
  • Linux HA集群之DRBD详解
  • 第二十课:运算放大器抽象
  • dell vfoglight
  • Linux嵌入式应用开发- Ubuntu eclipse/C 使用静态库
  • python实例
  • (转)为C# Windows服务添加安装程序
  • db2的bufferpool不足报错的快速解决
  • 《明天会有温暖的家》
  • android的NDK和java进行本地socket通信
  • Hadoop学习笔记3:org.apache.hadoop.conf
  • 远程桌面与远程控制
  • [leetcode] Balanced Binary Tree
  • 运维的我要学开发--Python(4)
  • Ubuntu 14.04配置记录
  • 深入了解以太坊
  • python3.6+scrapy+mysql 爬虫实战
  • Apache的基本使用
  • Django 博客开发教程 8 - 博客文章详情页
  • java概述
  • k个最大的数及变种小结
  • laravel with 查询列表限制条数
  • mysql外键的使用
  • PV统计优化设计
  • Python十分钟制作属于你自己的个性logo
  • springboot_database项目介绍
  • SQLServer之索引简介
  • V4L2视频输入框架概述
  • Vue.js-Day01
  • Zsh 开发指南(第十四篇 文件读写)
  • 记录:CentOS7.2配置LNMP环境记录
  • 前端
  • 算法之不定期更新(一)(2018-04-12)
  • 源码安装memcached和php memcache扩展
  • scrapy中间件源码分析及常用中间件大全
  • #define 用法
  • #define与typedef区别
  • #vue3 实现前端下载excel文件模板功能
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (笔试题)合法字符串
  • (二)springcloud实战之config配置中心
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (接口自动化)Python3操作MySQL数据库
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .net6 webapi log4net完整配置使用流程
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • /*在DataTable中更新、删除数据*/
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...
  • @data注解_一枚 架构师 也不会用的Lombok注解,相见恨晚