JavaScript学习笔记
1. 基本知识
基本知识
可将<Script>...</Script>标识放入head>.. </Head>或<Body> ...</Body>之间。将JavaScript标识放置<Head>... </Head>在头部之间,使之在主页和其余部分代码之前装载,从而可使代码的功能更强大;可以将JavaScript标识放置在<Body>... </Body>主体之间以实现某些部分动态地创建文档。
虽然HTML标记是大小写不区分的,但是Js是大小写区分的,而且js的关键字,方法名通常都是小写的。
基本知识
可将<Script>...</Script>标识放入head>.. </Head>或<Body> ...</Body>之间。将JavaScript标识放置<Head>... </Head>在头部之间,使之在主页和其余部分代码之前装载,从而可使代码的功能更强大;可以将JavaScript标识放置在<Body>... </Body>主体之间以实现某些部分动态地创建文档。
虽然HTML标记是大小写不区分的,但是Js是大小写区分的,而且js的关键字,方法名通常都是小写的。
2. ECMAScript的基础概念:
ECMAScript的基础概念
1. 区分大小写;跟java一样
2. 注释跟java一样
3. 变量是弱类型的;定义变量时只用var运算符,可以将其初始化为任意的值。
也可以随时改比变量所存数据的类型;解释器在运行时进行变量的类型检查。
4.每行结尾的分号可有可无。
5.大括弧表示代码块
3. ECMAScript的5种原始类型
ECMAScript的5种原始类型
1) Undefined 表示已声明,但未进行赋值。
2) Null
3) Boolean
4) Number 可以表示浮点数,也可以表示整数。
5) String
通过typeof运算符 可以返回变量的类型名。如果变量是引用类型或者null,将返回"object"。
通过instanceof运算符 可以判断某变量是否属于指定类型的实例。例如
var strName = new String("bison");
if( strName instanceof String ){}
关于undefined的进一步理解:
4. 函数
函数
1) ECMAScript令人最感兴趣的地方
2) 函数实际上是功能完整的对象,
他属于Function类型,可以用new Function(arg1,arg2,...)来定义函数实例
3) 在函数体中可以定义另外一个函数体
4) 在函数代码中,使用特殊对象arguments,开发者无需明确之处参数名,就能访问他们。
5. 某些关键字的用法:
某些关键字的用法
instanceof,delete,typeof,this,
ECMAScript的基础概念
1. 区分大小写;跟java一样
2. 注释跟java一样
3. 变量是弱类型的;定义变量时只用var运算符,可以将其初始化为任意的值。
也可以随时改比变量所存数据的类型;解释器在运行时进行变量的类型检查。
4.每行结尾的分号可有可无。
5.大括弧表示代码块
3. ECMAScript的5种原始类型
ECMAScript的5种原始类型
1) Undefined 表示已声明,但未进行赋值。
2) Null
3) Boolean
4) Number 可以表示浮点数,也可以表示整数。
5) String
通过typeof运算符 可以返回变量的类型名。如果变量是引用类型或者null,将返回"object"。
通过instanceof运算符 可以判断某变量是否属于指定类型的实例。例如
var strName = new String("bison");
if( strName instanceof String ){}
关于undefined的进一步理解:
undefined值不等同于未声明的值,不好理解吗,就是这样。js代码示例如下:
- var temp;
- //temp已经声明,所以下面会显示true
- if (temp==undefined) {
- alert("true");
- }
- //temp2还没有声明,所以下面会引发一个脚本错误
- if (temp2==undefined) {
- alert("true");
- }
- //不过,typeof运算符却不会区分它们的差别,
- //下面的代码如果运行,都会显示"undefined"
- //不过,由于上面的脚本错误,这两句永远也不会运行了
- alert(typeof temp);
- alert(typeof temp2);
函数
1) ECMAScript令人最感兴趣的地方
2) 函数实际上是功能完整的对象,
他属于Function类型,可以用new Function(arg1,arg2,...)来定义函数实例
3) 在函数体中可以定义另外一个函数体
4) 在函数代码中,使用特殊对象arguments,开发者无需明确之处参数名,就能访问他们。
5. 某些关键字的用法:
某些关键字的用法
instanceof,delete,typeof,this,
6. BOM (浏览器对象模型)
BOM (浏览器对象模型)
BOM的体系结构如下,其中以[]开头的表示对象类型为Array.
从图中可以看出,window对象是整个BOM的中心,他表示整个浏览器窗口。因为他是唯一的中心,所以引用其子对象时,不需要明确引用他本身。例如直接使用document.,而不需要window.document.
1) Location对象可以控制在浏览器中显示指定的URL的网页文档
2) History对象可以模拟浏览"历史"的向前向后操作
BOM (浏览器对象模型)
BOM的体系结构如下,其中以[]开头的表示对象类型为Array.
从图中可以看出,window对象是整个BOM的中心,他表示整个浏览器窗口。因为他是唯一的中心,所以引用其子对象时,不需要明确引用他本身。例如直接使用document.,而不需要window.document.
1) Location对象可以控制在浏览器中显示指定的URL的网页文档
2) History对象可以模拟浏览"历史"的向前向后操作
7. 面向对象
面向对象
1.创建类对象的方式
1) 混和的构造函数+原型方式
2) 动态原型方式
2.继承的实现方式
1)使用Javascript的原始支持,比较麻烦
2)使用zinherit.js库,比较方便
3)使用xbObjects.js库,比较方便
面向对象
1.创建类对象的方式
1) 混和的构造函数+原型方式
2) 动态原型方式
2.继承的实现方式
1)使用Javascript的原始支持,比较麻烦
2)使用zinherit.js库,比较方便
3)使用xbObjects.js库,比较方便