2-01:类型补充
->js中数字是浮点类型,而不是精确类型
->在js中双引号和单引号都表示字符串
var str="qwer"; var str='qwer';
->数组 (js中下面两种数组方式完全一样)
var arr1={}; 字面值,直接量
var arr2=new Array();
2-02:对象
->js是面向对象的语言,js中对象就是键值对
键值对,值可以是数字,字符串,布尔值数据,好比字段
值也可以是函数,好比方法,键就是变量名或者函数名
//对象的字面值(Json)
var o={};//Object对象
var o={
name:"张三",
//"name":"张三",用双引号引起来当做字符串也是一样的效果
age:18,
sex:"男",
sayHello:function(){
alert("你好")
}
};
alert(o.name);
alert(o.age);
alert(o.sex);
o.sayHello();
->关联数组
就上面的代码例子;
js中支持将对象当做数组使用;
->o.name 等价于 o["name"]
->o.sayHello() 等价于 o["sayHello"]()
//中括号内必须为字符串
详细见代码
->this
->在C#中,this表示当前对象(实例)
->js中也是一样
->见代码
02-4:构造方法与对象
var o1={};
var o2=new Object();//Object的构造方法
js中所有的对象类型来自object (大写O是构造方法,小写o是类型)
判断变量是否是构造方法创建出来的;
用instanceof 方法 返回boolean 变量
alert({} instanceof Object);
->什么是构造方法
就是普通方法
调用的时候使用new就可以将其作为构造方法来使用
js没有类,直接使用构造方法创建对象
->实现步骤
->创建一个函数
->new这个函数
->添加成员
在构造方法中使用 this.成员 进行添加
->js支持动态成员
如果一个对象没有定义某个属性,但是希望它有
只需要用 "对象.该属性",那么就可以动态给该对象添加属性了
02-6:类型转换与包装对象
->基本类型转换
number,boolean,string
->数字--字符串
string(数字)
数字+""
数字.tostring()
->字符串--数字
字符串-0
Number(字符串)
parseInt() parseFloat()
->转boolean值
1.if(!!val){ //把一个值否定一次再否定一次,变成布尔值,但是值不变
}
2.能力判断
if(!o.foo){//如果o没有foo()这个方法,则动态添加一个
o.foo=function(){}
}
->包装类型
基本类型:number,string ,boolean
包装类型:Number,String ,Boolean
--基本类型不是对象,不具备方法,就单纯是个数据
--在执行诸如"num.tostring()"的时候
编译器会自动根据num生成一个Number类型对象,并调用tostring()方法
将结果返回,然后释放Number对象,等待垃圾回收.
02-7:常用对象
->字符串
数组
时间
正则表达式
异常
02-8:异常
02-9:正则表达式
->元字符
基本元字符: . [] | ()
限定元字符: + * ? {n} {n,} {n,m}
首尾元字符: ^ $
简写形式: \d \D \w \W \s \S
->在js中,如何创建正则表达式
字面值: var regex =/\d+/;
构造函数:var regex=new RegExp("/\\d++");
->匹配
bool Regex.IsMatch(字符串,正则);
boolen 正则表达式对象.test(字符串);
->提取
使用方法
像数组的对象,正则表达式对象.exec(字符串);
这个对象的[0]是匹配结果
这个对象的[1],[2]...是各个组
02-11:循环提取
在正则后面加上一个 g 表示全局模式
->循环提取使用的方法与刚才的一样,不同的是需要循环调用exec方法
每次方法匹配一个,循环匹配结束后返回null,然后又从新一轮开始
02-12:正则替换
<string>.replace(正则表达式或字符串,替换为的字符串);
02-13:js代码编写方式
->无论是js还是css,都可以卸写在页面中
<script>与<style>可放在页面中的任何一个地方,并且多个与一个,是一样的.
可以在<head>和<body>中写.
->一般企业开发为了让浏览器页面显示更加流畅,
<style>或者<link>标签写在前面.
<script>标签写在后面
->css使用link引入
js使用script标签引入
<script type="text/jsvascript" str=""></script>
02-14:DOM文档对象模型
->理解DOM概念
->知道如何对节点进行增删改
->理解事件
02-16:事件是什么
->节点就是对象
->onload事件,页面中的DOM结构加载完后才会触发这个事件
->事件怎么写,事件是个什么东西
->C#事件就是个委托变量(事件的编程概念)
->JavaScript就是方法
->描述性概念
->浏览器的底层也会有很多触发函数的机制
->事件怎么写(要做什么就些什么)
下面情况见代码:
如果有一个a标签,给其添加一个点击事件
1.该点击事件没有返回值或者返回值为true,a标签正常跳转
2.如果该点击事件返回值为false,则a标签不再跳转
if(a.onclick() != null){
var res=a.onclick();
if(res===false){
break; //默认的正常跳转不在继续了
}
}
->如果事件处理函数,返回了false,表示该事件默认的处理忽略不做
02-18:DOM节点添加事件
->节点是有类型的(文件节点,元素节点,属性节点)
标准DOM定义中有12中
元素节点 1
属性节点 2
文本节点 3
获得方式 <node>.nodeType
->为节点添加事件的方法;
<node>.onclick=function(){};
如何获得节点:
1. document.getElementById("节点id");(见代码18 1)
--返回值为节点对象,获得页面中的指定id的节点对象
2. document.getElementsByTagName("标签名");(可以使用"*"意思获得所有节点)
--返回节点集合,获得页面中所有标签名复合要求的标签.
3. 父节点.getElementsByTagName("标签名");见代码18 3
--返回节点集合,但是仅仅该父节点下面的所有该标签的节点
修改节点:
所谓修改节点就是修改节点的属性与包含的文本.
1. 获得节点
2. 修改属性的标准方法
1>. <node>.setAttribute("属性名","值");
2>. 文本 <node>.getAttribute("属性名");
3>. DOM-html方法
<node>.属性名 =值;
var v = <node>.属性名
->js中数字是浮点类型,而不是精确类型
->在js中双引号和单引号都表示字符串
var str="qwer"; var str='qwer';
->数组 (js中下面两种数组方式完全一样)
var arr1={}; 字面值,直接量
var arr2=new Array();
2-02:对象
->js是面向对象的语言,js中对象就是键值对
键值对,值可以是数字,字符串,布尔值数据,好比字段
值也可以是函数,好比方法,键就是变量名或者函数名
//对象的字面值(Json)
var o={};//Object对象
var o={
name:"张三",
//"name":"张三",用双引号引起来当做字符串也是一样的效果
age:18,
sex:"男",
sayHello:function(){
alert("你好")
}
};
alert(o.name);
alert(o.age);
alert(o.sex);
o.sayHello();
->关联数组
就上面的代码例子;
js中支持将对象当做数组使用;
->o.name 等价于 o["name"]
->o.sayHello() 等价于 o["sayHello"]()
//中括号内必须为字符串
详细见代码
->this
->在C#中,this表示当前对象(实例)
->js中也是一样
->见代码
02-4:构造方法与对象
var o1={};
var o2=new Object();//Object的构造方法
js中所有的对象类型来自object (大写O是构造方法,小写o是类型)
判断变量是否是构造方法创建出来的;
用instanceof 方法 返回boolean 变量
alert({} instanceof Object);
->什么是构造方法
就是普通方法
调用的时候使用new就可以将其作为构造方法来使用
js没有类,直接使用构造方法创建对象
->实现步骤
->创建一个函数
->new这个函数
->添加成员
在构造方法中使用 this.成员 进行添加
->js支持动态成员
如果一个对象没有定义某个属性,但是希望它有
只需要用 "对象.该属性",那么就可以动态给该对象添加属性了
02-6:类型转换与包装对象
->基本类型转换
number,boolean,string
->数字--字符串
string(数字)
数字+""
数字.tostring()
->字符串--数字
字符串-0
Number(字符串)
parseInt() parseFloat()
->转boolean值
1.if(!!val){ //把一个值否定一次再否定一次,变成布尔值,但是值不变
}
2.能力判断
if(!o.foo){//如果o没有foo()这个方法,则动态添加一个
o.foo=function(){}
}
->包装类型
基本类型:number,string ,boolean
包装类型:Number,String ,Boolean
--基本类型不是对象,不具备方法,就单纯是个数据
--在执行诸如"num.tostring()"的时候
编译器会自动根据num生成一个Number类型对象,并调用tostring()方法
将结果返回,然后释放Number对象,等待垃圾回收.
02-7:常用对象
->字符串
数组
时间
正则表达式
异常
02-8:异常
02-9:正则表达式
->元字符
基本元字符: . [] | ()
限定元字符: + * ? {n} {n,} {n,m}
首尾元字符: ^ $
简写形式: \d \D \w \W \s \S
->在js中,如何创建正则表达式
字面值: var regex =/\d+/;
构造函数:var regex=new RegExp("/\\d++");
->匹配
bool Regex.IsMatch(字符串,正则);
boolen 正则表达式对象.test(字符串);
->提取
使用方法
像数组的对象,正则表达式对象.exec(字符串);
这个对象的[0]是匹配结果
这个对象的[1],[2]...是各个组
02-11:循环提取
在正则后面加上一个 g 表示全局模式
->循环提取使用的方法与刚才的一样,不同的是需要循环调用exec方法
每次方法匹配一个,循环匹配结束后返回null,然后又从新一轮开始
02-12:正则替换
<string>.replace(正则表达式或字符串,替换为的字符串);
02-13:js代码编写方式
->无论是js还是css,都可以卸写在页面中
<script>与<style>可放在页面中的任何一个地方,并且多个与一个,是一样的.
可以在<head>和<body>中写.
->一般企业开发为了让浏览器页面显示更加流畅,
<style>或者<link>标签写在前面.
<script>标签写在后面
->css使用link引入
js使用script标签引入
<script type="text/jsvascript" str=""></script>
02-14:DOM文档对象模型
->理解DOM概念
->知道如何对节点进行增删改
->理解事件
02-16:事件是什么
->节点就是对象
->onload事件,页面中的DOM结构加载完后才会触发这个事件
->事件怎么写,事件是个什么东西
->C#事件就是个委托变量(事件的编程概念)
->JavaScript就是方法
->描述性概念
->浏览器的底层也会有很多触发函数的机制
->事件怎么写(要做什么就些什么)
下面情况见代码:
如果有一个a标签,给其添加一个点击事件
1.该点击事件没有返回值或者返回值为true,a标签正常跳转
2.如果该点击事件返回值为false,则a标签不再跳转
if(a.onclick() != null){
var res=a.onclick();
if(res===false){
break; //默认的正常跳转不在继续了
}
}
->如果事件处理函数,返回了false,表示该事件默认的处理忽略不做
02-18:DOM节点添加事件
->节点是有类型的(文件节点,元素节点,属性节点)
标准DOM定义中有12中
元素节点 1
属性节点 2
文本节点 3
获得方式 <node>.nodeType
->为节点添加事件的方法;
<node>.onclick=function(){};
如何获得节点:
1. document.getElementById("节点id");(见代码18 1)
--返回值为节点对象,获得页面中的指定id的节点对象
2. document.getElementsByTagName("标签名");(可以使用"*"意思获得所有节点)
--返回节点集合,获得页面中所有标签名复合要求的标签.
3. 父节点.getElementsByTagName("标签名");见代码18 3
--返回节点集合,但是仅仅该父节点下面的所有该标签的节点
修改节点:
所谓修改节点就是修改节点的属性与包含的文本.
1. 获得节点
2. 修改属性的标准方法
1>. <node>.setAttribute("属性名","值");
2>. 文本 <node>.getAttribute("属性名");
3>. DOM-html方法
<node>.属性名 =值;
var v = <node>.属性名