1. JavaScript(JS)有9种数据类型:未定义(Undefined),空(Null),布尔(Boolean),字符串(String),数值(Number),对象(Object),引用(Refference),列表(List),完成(Completion)。其中后三种不可用。
2. 类型转换规则:
3. 值传递,引用传递。在JS中对函数类型(typeof(var)为function),对象类型的参数都是以引用传递。对未定义,NULL,数值,字符串,boolean类型的变量以值传递。
4. Global对象用于存一些常用的全局的方法和属性。如:eval(),parseInt(),parseFloat(),escape(),unescape(),isNaN(),isFinite(),NaN,Infinity。注意:使用时直接用就可以,而不需要也不能用形如Global.eval()的方式。
5. 字符串作为一种单独的数据类型,它也对应一种内置对象(String)
var str2 = “你好”; // str1,str2是字符串类型的变量
alert(str1.length); // 5
alert(str2.length); // 2。Str1,str2,被当作字符串对象。
6. 浏览器提供的内部对象开头都是小写形式:
navigator:独立对象,提供浏览器和OS等信息
location:window对象的子对象,与地址栏相关
history: window对象的子对象,与浏览器的历史记录相关
document:window对象的子对象,表示页面文档
7. 定义函数的方式:
... {
// 语句
}
调用函数的方式和其它语言没有什么差别。
8. 一个函数就是一个对象。什么意思?定义一个函数的时候(如7中的例子),实质上是定义了一个对象。(如对于7中例子,就有了一个名为fun1的对象,注意是对象,不是类)。这个对象和普通对象有所不同。它是一个能构造出普通对象的对象。
Math, Date, Error, Array, String, Object, Function, RegExp(不知道全不全)
alert( typeof (fun1)); // function
alert( typeof (obj)); // object,也就是所谓普通对象
浏览器为我们内置了一些这种能构造对象的对象。如:
9. 每个函数对象(如上的class1对象)都有一个prototype子对象。prototype对象表示了一个类的成员的集合。通过new来获取一个类的实例的时候,prototype对象的成员都会成为实例化的对象的成员。
// statement
}
class1.prototype.method = function (){
alert(“something”);
}
var obj = new class1();
obj.method(); // something
prototype对象是JS实现面向对象的基础。
10.JS面向对象
待续。。。