读:JavaScript 高级程序设计
2008-04-06 21:57
375 查看
第1章 JavaScript是什么
1.1 历史简述
1.2 JavaScript实现
1.3 小结
一个完整的JavaScript实现包括3个不同部分:核心(ECMAScript),DOM,BOM。
Web浏览器对于ECMAScript来说只是一个宿主环境,还有其他的各种环境可以容纳ECMAScript的实现。ECMAScript仅仅是一个描述,定义了脚本语言的所有属性、方法和对象。
DOM有三个level,各种浏览器支持的level不一样,目前Mozilla支持完整的level1,几乎所有的level2和一部分level3,而IE支持level1。
JavaScript的核心ECMAScript描述了该语言的语法和基本对象。
DOM描述了处理网页内容的方法和接口。
BOM(浏览器对象模型)描述了与浏览器进行交互的方法和接口。
第2章 ECMAScript基础
2.1 语法
2.2 变量
2.3 关键字
2.4 保留字
2.5 原始值和引用值
原始值(primitive value)是存储在栈(stack)中的简单数据段。引用值(reference value)是存储在堆(heap)中的对象,也就是说存储在变量处的值是一个指针,指向存储对象的内存处。
2.6 原始类型
ECMAScript有5种原始类型,即undefined, null, boolean, number和string。可用typeof运算符来判断一个值的类型,如:
var sTemp = "Hello";
alert(typeof sTemp); output string
alert(typeof 95); //output number
当申明的变量未初始化时,该变量的默认值是undefined。值undefined并不等同于未定义的值,但typeof运算符不能区分这两种值。当函数无明确返回值时,返回的也是值undefined。
var oTemp;
alert(typeof oTemp); //output undefined
alert(typeof abc); //output undefined
alert(oTemp == undefined); //output true
alert(abc == undefined); //error
2.7 转换
toString(), parseInt(), parseFloat(), Boolean(), Number(), String()。
对null或undefined值类型采用String()强制转换可以生成字符串而不引发错误,而toString()不可以。
2.8 引用类型
var oBooleanObject = new Boolean(true);
var oFalseObject = new Boolean(false);
var bResult = oFalseObject && true; //outputs true,因为oFalseObject是对象,而非原始值。
最好使用boolean原始值,避免发生错误。
var oNumberObject = new Number(55);
var iNumber = oNumberObject.valueOf();
var oStringObject = new String("hello world");
alert(oStringObject.valueOf() == oStringObject.toString()); //outputs true
String类还有大量的方法:charAt(), charCodeAt(), concat(), indexOf(), localeCompare(), slice(), substring(), toLocaleUpperCase(), toUpperCase(), toLocaleLowerCase(), toLowerCase().
String类的所有属性和方法都可应用在String原始值上,因为它们是伪对象。
alert(oStringObject instanceof String); //output true
2.9 运算符
2.10 语句
2.11 函数
ECMAScript中的函数不能重载。可用相同的名字在一个作用域中定义两个函数而不会引发错误,但真正使用的是后一个函数。在函数代码中,使用特殊对象arguments,开发者无需明确指出参数名,就能访问它。用arguments对象判断传递给函数的参数个数,即可模拟函数重载。
function sayHi() {
if (arguments[0] == "bye") {
return;
}
alert(arguments[0]);
}
var sayHi = new Function("sName", "sMessage", "alert(/"Hello /" + sName + /", /" + sMessage + /"); /");
ECMAScript最容易让人误解的一点是它支持闭包(closure)。所谓闭包,是指词法表示包括不必计算的变量的函数,也就是说,该函数能使用函数外定义的变量。
var iBaseNum = 10;
function addNumbers(iNum1, iNum2) {
function doAddition() {
return iNum1 + iNum2 + iBaseNum;
}
return doAddition();
}
2.12 小结
相关文章推荐
- JavaScript高级程序设计(读书笔记)之BOM
- 【JavaScript高级程序设计】读书笔记之二 —— 理解对象的原型、继承
- JavaScript高级程序设计
- javascript高级程序设计笔记1
- JavaScript高级程序设计之基本概念之操作符之一元操作符第3.5.1讲笔记
- JavaScript高级程序设计之基本概念之语句第3.6讲笔记
- JavaScript高级程序设计之引用类型之Array 类型第5.2讲笔记
- javascript高级程序设计笔记(三)
- JavaScript高级程序设计之函数表达式之闭包之关于 this 对象第7.2.2讲笔记
- JavaScript高级程序设计学习笔记-20160125
- javascript高级程序设计第三版 第8章 BOM
- JavaScript高级程序设计(第三版) (5章 引用类型)
- JavaScript高级程序设计[美]Nicholas C.Zakas著 读书笔记(一)
- javascript 高级程序设计笔记(五)
- 模拟事件【JavaScript高级程序设计第三版】
- Javascript高级程序设计第二版第四章--变量,作用域及内存问题--笔记
- javascript高级程序设计第三版 第10章 DOM
- javascript高级程序设计笔记(六)
- javascript高级程序设计:一个ajax的插件
- JavaScript高级程序设计之BOM之window 对象之窗口大小 第8.1.4讲笔记