JavaScript高级程序设计学习笔记 01

纯属个人笔记,全为原创,仅供参考

第一章 JavaScript简介

JavaScript 诞生于1995年。它是在 一个星期内 被创造出来,用于处理以前由服务器端语言(如PERl)负责的一些 输入验证操作。由于这是在 客户端验证,极大地缩短了服务器端验证表单的速度。自此以后,JavaScript逐渐成为了市面上常见浏览器必备的一项特色功能。如今JS用途早已不再局限于简单的数据验证,而是具备了与 浏览器窗口及其内容等几乎所有方面交互的能

-1.1 JavaScript简史

由于当时 网速局限 (网络速度仅为28.8kbit/s) 和 网页大小,复杂性的逐渐增加 之间的矛盾愈加剧烈。走在技术革新最前沿的 Netscape 公司决定着手开发一套客户端语言来处理这个问题。就职于网景的布兰登开始着手计划于 1995年2月 发布网景浏览器上(Netscape Navigator 2)的一种名为 LiveScript 的脚本语言。后来在发布的前夕,网景为了搭上媒体热炒Java的顺风车,临时把 LiveScript 改名为 JavaScript 。

       JavaScript 1.0 获得了巨大成功,微软眼红,决定与网景浏览器竞争的自家产品 IE浏览器 投入更多的资源。就在 JavaScript1.1 发布不久,微软就在其 IE3 中加入了名为 JScript 的JavaScript实现。这标志着JavaScript作为一门语言,其开发向前迈进了一大步。

由于微软推出其自己版本的JavaScript,意味着有多个 不同的JavaScript版本,而JS在当时还没有其他编程语言一样拥有标准规定发 语法 和 特性。所以 JavaScript的标准化问题 被提上了议事日程。

1997年,JavaScript 1.1 为蓝本 的提议被提交给了 欧洲计算机制造商协会 (ECMA,European Computer Manufacturers Association)。ECMA 指定 39号技术委员会 (TC39 , Technical Committee #39) 负责 “标准化一种通用,跨平台,供应商中立的脚本语言的语法和语义”。  * TC39由来自网景,sun,微软,borland以及其他公司的程序员组成。  他们经过数月的努力完成了 ECMA-262 --- 定义一种名为ECMAScript 的新脚本语言的标准。至此,各浏览器开发商就开始将 ECMAScript 作为各自 JavaScript 实现的基础。

-1.2 JavaScript实现

虽然 JavaScript 和 ECMAScript 通常的表达含义相同,但是 JavaScript 所表达的东西比 ECMAScript 的多得多。                                         一个完整的 JavaScript 实现由三部分组成:

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

核心(ECMAScript)                                                                                                                                                                 

* 实际上 ECMAScript 和 Web 浏览器没有依赖关系。Web 浏览器只是 ECMAScript 的 宿主环境 之一。宿主环境不仅提供语言基本的实现,而且

时间: 2024-10-24 15:49:11

JavaScript高级程序设计学习笔记 01的相关文章

javascript 高级程序设计 学习笔记01章 javascript的认知

hello world: 大家早上好 ,所谓一年之计在于春,一日之计在于晨.今天开始学习 高级程序设计第三版 第二遍 以前以迅雷不及掩耳之势草草看过一遍 ,但是什么也没记住 已经忘得差不多了.哈哈,原来我不是黄蓉,也不是天才,还是那句话 好记性不如烂笔头.这次学习高级程序设计第三版 是有目标的,有目的性的.所以我会把 每一章学习的心得和笔记 都记录在此.于己于人都方便.废话不多说 ,开始吧 今天的第一张 ,javascript 的实现.张鑫旭大神说过 非it(计算机专业的)的前端从业人员 学习j

JavaScript高级程序设计学习笔记--基本概念

1.语句 ECMAScript中的语句以一个分号结尾:如果省略分号,则由解析器确定语句的结尾,如下例所示: var sum=a+b //即使没有分号也是有效的语句--推荐 var diff=a-b; //有效的语句--推荐 虽然语句结尾的分号不是必需的,但我们建议任何时候都不要省略它.两个原因:1.加上分号可以避免很多错误 2.加上分号也会在某些情况下增进代码的性能,因为这样解析器就不必再花时间 推测应该在哪里插入分号了. 2.变量 var message="hi"; 像这样初始化变量

JavaScript高级程序设计学习笔记--错误处理与调试

try-catch语句 只要代码中包含finally子句,则无论try或catch语句块中包含什么代码--甚至return语句,都不会阻止finally子句的执行,来看下面这个函数: function testFinally(){ try{ return 2; }catch(error){ return 1; }finally{ return 0; } } 调用这个函数会返回0(PS:但我实际执行的时候会先返回0,再返回2) 抛出错误 与try-catch语句相配的还有一个throw操作符,用于

JavaScript高级程序设计学习笔记--面向对象程序设计

工厂模式 虽然Object构造函数或对象字面量都可以用来创建单个对象,但这些方式有个明显的缺点:使用同一个接口创建很多对象,会产生大量的重复代码.为解决这个问题,人们开始使用 工厂模式的一种变体. function createPerson(name,age,job){ var o=new Object(); o.name=name; o.age=age; o.job=job; o.sayName=function(){ alert(this.name); }; return o; } var

Javascript高级程序设计学习笔记

3. 基本概念 基本数据类型:Undefined,Null,Boolean,Number,String. 复杂数据类型:Object. 3.6 语句 switch比较值时用的是全等运算符 “===” ,因此不会进行类型转换.例如 “10” 不等于10. 3.7 函数 ECMAScript函数不介意传递进来多少个参数,也不在乎参数的类型.即使定义的函数只接受两个参数,在调用的时候也可以传递任意多个或者0个.因为ECMAScript的参数在内部是用一个数组表示的,在函数体内部可以通过argument

JavaScript高级程序设计学习笔记--高级技巧

惰性载入函数 因为浏览器之间行为的差异,多数JavaScript代码包含了大量的if语句,将执行引导到正确的代码中,看看下面来自上一章的createXHR()函数. function createXHR(){ if (typeof XMLHttpRequest != "undefined"){ return new XMLHttpRequest(); } else if (typeof ActiveXObject != "undefined"){ if (typeo

JavaScript高级程序设计学习笔记--DOM

DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序接口). Document类型 文档的子节点 虽然DOM标准规定Document节点的子节点可以是DocumentType,Element,ProcessingInstruction或Comment,但还有两个内置的访问其子节点的快捷方式.第一个就是documnetElement属性,该属性始终指向HTML页面中的<html>元素.另一个就是通过childNodes列表访问文档元素,但通过documentElement属性则

JavaScript高级程序设计学习笔记--BOM

window对象 BOM的核心对象是window,它表示浏览器的一个实例.在浏览器中,window对象有双重角色,它既是通过JavaScript访问浏览器窗口的一个接口,又是ECMScript规定的Global对象. 全局作用域 由于window对象同时扮演着ECMAScript中Global对象的角色,因此所有在全局作用域中声明的变量.函数都会变成window对象的属性和方法.来看下面的例子: var age=29; function sayAge(){ alert(this.age); }

JavaScript高级程序设计学习笔记--引用类型

Object类型 对象字面量表示法: var person={ name:"Nicholas", age:29, 5:true }; 这人例子会创建一个对象,包含三个属性:name,age和5.但这里的数值属性名会自动转换为字符串. 对象属性的访问:点表示法和方括号语法 alert(person["name"]); // "Nicholas" alert(person.name); // "Nicholas" 从功能上看,这两