JAVASCRIPT自学文档

JAVASCRIPT自学文档
JAVASCRIPT自学文档

JavaScript

程涛

kongzimengsheng@https://www.360docs.net/doc/f03577438.html,

一个完整的JavaScript实现是由以下3个不同部分组成的

?核心(ECMAScript)——JavaScript的核心ECMAScript描述了该语言的语法和基本对象

?文档对象模型(DOM)——DOM描述了处理网页内容的方法和接口?浏览器对象模型(BOM)——BOM描述了与浏览器进行交互的方法和接口

ECMAScript、DOM、BOM将是我们之后课程的主要内容。

我们的第一个脚本:最经典的HelloWorld 程序!开发环境选择一个你喜欢的纯文本编辑器或IDE

NotePad++

UltraEdit

EditPlus gEdit(Unix)

Emacs(Mac)

其它

至少一个符合W3C 标准的浏览器(推荐火狐浏览器),和一些市场上流行的浏览器(IE )

FireFox 3.0+

Internet Explorer 6.0+

Google Chrome 1.0+Opera 9.0+

Safari 3.0+

调试工具

FireFox 下的FireBug,Venkman 等

变量

对于变量的理解:变量是数据的代号。如同人的名字一样。

var num;//在JavaScript 中使用关键字var 声明一个变量

在JavaScript 中,使用上面的语法,就可以声明一个变量,以便在之后给其指定值.

var num;

num=128;//这样,就将num 做为值128的一个名字,有了名字,就可以在之后引用!

document.write(num);//输出128

貌似下面的代码和上面的具有一样的输出

document.write(128);//这样当然也输出了128

var 34bad;//不能以数字开头

var per 人;//不能包含中文

var bad-var;//非法的-

var var;//var 就是一个关键字,所以很明显不能用来做变量名

var dog;

dog="小虎子";//字符串,它们总被包含在双引号(或单号)中

JavaScript的变量类型不止字符串,数字,布尔值这三种,然而这三种确是最常用的了。其它数据类型(参考):

复合(引用)数据类型是:

*对象

*数组

特殊数据类型是:

*Null

*Undefined

//事实上,我们接触的第一个数据类型是Undefined,它的含义是"未定义值"

var a;//声明一个变量,但没有对其赋值

alert(a);//但它仍然有值的,它的值为undefined

alert(b);//但注意,输出一个未定义的变量将出现错误,而不是输出undefined

//加法+

//减法-

//乘法*

//除法/

//自增++

//自减--

var a=12;

var b=30;

var c=a+b;

alert(c);//输出42alert()?用了就知道了

c=b-a;

alert(c);//输出18

c=c*2;

alert(c);//输出36

c=c/2;

alert(c);//输出18

c=12;

c++;//这与c=c+1;效果是一样的

alert(c);//输出13

c--;//这与c=c-1;效果是一样的

alert(c);//输出11

//自增与自减运算符出现的地方也有讲究

c=20;

类型转换入门

由于JavaScript是弱类型语言,所以我们完全可以将字符串和数字(两个不同类型的变量)进行相加,这个我们在前面已经演示过了.当然,不仅仅可以将字符串和数字相加,还可以将字符串与数字相乘而不会出现脚本错误!

var str="some string here!";

var num=123;

alert(str*num);//将输出NaN,因为乘法运算符只能针对数字,所以进行运算时计算机会将字段串

转换成数字

//而这里的字符串转换成数字将会是NaN

//NaN是一个特殊的值,含义是"Not A Number"-不是一个数字,当将其它值转换成数字失败时会

得到这个值

str="2";

alert(str*num);//将输出246,因为str可以解析成数字2

其它类型转换

var bool=true;

alert(bool*1);//输出1,布尔值true转换成数字为1,事实上将其它值转换在数字最简单的方法就是将其乘以1

bool=false;

alert(bool*1);//输出0

alert(bool+"");//输出"flase",将其它类型转换成字符串的最简单的方法就是将其写一个空字符串相连

alert(123+"");//数字总能转换成字符串

var str="some string";

alert(!!str);//true,因为非运算符是针对布尔值进行运算的,所以将其它类型转换成布尔值只须将其连续非两次

str="";

alert(!!str);//输出false,只有空字符串转换成布尔值时会是false,非空字符串转换成布尔值都会返回true

var num=0;

alert(!!num);//false

num=-123.345;

alert(!!num);//true,除0以外的任何数字转换成布尔值都会是true

//还有一个非常重要的是,空字符串转换成数字将会是0

alert(""*1);//输出0

条件判断

获取变量类型typeof 运算符var bool =true;alert(typeof bool);//输出boolean var num =123;alert(typeof num);//输出number var str ="some string here";alert(typeof str);//输出string var strNum ="123";alert(typeof strNum);//输出string strNum *=1;alert(typeof strNum);//输出number

var condition =true;if (condition){alert("我将出现!");}condition =false;if (condition){alert("我不会出现!");}else {alert("我会出现!");}condition ="some string";if (condition){alert("可以直接对任何数据类型进行if 判断,在判断时计算会自动将其转换成布尔值!");}var val =condition?"当为true 时我将被返回":"当为false 时我将被返回";alert(val);//将输出"当为true 时我将被返回"

//为了判断用户输入的成绩的范围,我们使用了多重嵌套的if..else语句

var num=window.prompt("请输入XXX的成绩!","");

num*=1;//window.prompt方法始终只返回字符串,用这样的方法将其转换成数字

if(isNaN(num)&&num){//不能将其它值转换成数字时将返回NaN,可以用内置的isNaN判断值是否是NaN

alert("您输入的不是一个数字!");

}else{

if(num<=100&&num>=90){

alert("Excellent!");

}else{

if(num<90&&num>=80){

alert("Good!");

}else{

if(num<80&&num>=70){

alert("So so!");

}else{

if(num<70&&num>=60){

alert("Be careful!!!");

}else{

if(num<60&&num>=0){

alert("Oh,NO!");

}else{

alert("USB!");

}

}

}

}

}

}

//上面的代码由于用了多重的if..else嵌套,显得非常的混乱,简化只须将else后的花括号去掉就行了

//if(...){...}这算是一句

if(isNaN(num)){

alert("您输入的不是一个数字!");

}else if(num<=100&&num>=90){

alert("Excellent!");

}else if(num<90&&num>=80){

alert("Good!");

}else if(num<80&&num>=70){

alert("So so!");

}else if(num<70&&num>=60){

alert("Be careful!!!");

}else if(num<60&&num>=0){

函数

var i=0;//循环进行之前初始化i for(;;){//for 语句括号中必须有三个语句,但可以为空语句if (i<10){//当条件为true 时才执行代码alert("i 当前的值为"+i);}else {//当条件为false 时就退出循环break;//使用break 退出循环}}一个死循环最能说明while 的工作方式了(但这样的错误我们绝不能在实际编程中出现)while (true){alert("你关不掉我的!");//这就是网上那些所谓的高手写的“关不上的窗(周传雄新歌,力荐)”代码}

function calcAngleArea(){//使用function 关键字声明一个函数,接着是函数的名称,函数名称必须符合变量的命名规范//花括号用来表示一段代码块var wide=window.prompt("请输入三角形的底边长度!","");var high=window.prompt("请输入三角形的高!","");var area=wide*high/2;if (isNaN(area)){alert("您的输入有误!");}else {alert("三角形的面积为"+area);}}

//在函数内部可以使用return 语句将值返回给调用函数的上下文function calcAngleArea(wide,high){var area=wide*high/2;if (isNaN(area)||!area){return false;alert("注意,一个函数中的return 执行之后,函数就停止运行了,所以你不会看到我!");

变量作用域

内置对象Math 与Date

在函数内部声明的变量(局部变量),在函数外部并不能访问function demo(){var a="外面不能访问我!";}//alert(a);//出错,没有声明变量a demo();//执行函数alert(a);//仍然出错但在函数外部声明的变量(全局变量),在函数内部是可以访问的function demo(){//在一个脚本中,使用function 关键字声明的具有名称的函数在脚本中出现的次序是任意的,并不存在先后之分alert(globalVar);}//demo();//出错,执行时变量globalVar 还没有声明var globalVar="Hello!";demo();//输出Hello!

alert(Math.PI);//输出πalert(Math.pow(10,3));//输出10的3次方alert(Math.abs(-12));//输出-12的绝对值var num=23.34;alert(Math.ceil(num));//返回大于等于num 的最小整数alert(Math.floor(num));//返回小于等于num 的最大整数。alert(Math.round(num));//返回与num 最接近的整数(四舍五入)。alert(Math.random());//返回介于0和1之间的伪随机数。产生的伪随机数介于0和1之间(含0,不含1)alert(Math.max(2,3,4));//返回多个数值参数中较大的那个alert(Math.min(2,3,1));//返回多个数值参数中较小的那个alert(Math.sqrt(2));//返回一个数的平方根alert(Math.SQRT2);//返回2的平方根alert(Math.SQRT1_2);//返回二分之一的平方根

var d=new Date();//Date对象需要创建

//Date对象能够表示的日期范围约等于1970年1月1日前后各285,616年。

alert(d);//直接输出这个对象,将会得到一个表示时间的字符串

//这个对象有一些方法,可以用来获取时间的各个部分

alert(d.getYear());//获取年,2000年以前返回年份后两位,2000年之后的返回年份的完整表达方式

alert(d.getFullYear());//始终返回年份的4位数表达方式

alert(d.getMonth());//返回月份,注意,月份是从0开始计数的,所以1月时将返回0

alert(d.getDate());//返回今天几号

alert(d.getDay());//返回今天星期几,星期天是0,星期1是1....

alert(d.getHours());//返回小时

alert(d.getMinutes());//返回分钟

alert(d.getSeconds());//返回秒

alert(d.getMilliSeconds());//返回毫秒

alert(d.getTime());

//返回一个整数值,这个整数代表了从1970年1月1日开始计算到Date对象中的时间之间的毫秒数

//日期的范围大约是1970年1月1日午夜的前后各285616年,负数代表1970年之前的日期

var d=new Date();

d.setFullYear(1990);//设置年份为1900

alert(d.getFullYear());//返回1900

alert(d.getTime());//输出的值是负的,这验证了上面所说的getTime()返回值

与那些getXXX方法对应的设置时间的函数仅仅是将get改成set

var d=new Date();

d.setFullYear(2004);

d.setMonth(11);//设置月份为12月,注意月份是从0开始计数的

d.setDate(2);

d.setHours(6);

d.setMinutes(12);

d.setSeconds(12);

alert(d.getDay());//输出2004年12月2日星期几

//setXXX这样的方法有个最大的好处就是如果我们设置了错误的值,脚本并不会出错,但日期会自动更正

d=new Date();

d.setYear(2003);

d.setMonth(1);//月份从0开始计数

d.setDate(31);//2月从来不会有31号

alert(d);//输出日期,发现会是3月3号

数组与对象创建数组其它方式

var arr =new Array();//Array 和Date 一样,也是一个内置对象,需要使用new 运算符创建arr[0]="数据1";//向数组中添加一个元素,数组中的元素是有编号的,并且要注意的是,编号从0开始//上面一行代码就向数组中的第一个箱添加了一个元素arr[1]="数据2";//方括号用以指定下标1arr[2]="数据3";arr[3]="数据4";arr[5]="数据6";arr[4]="数据5";alert(arr);//将会输出"数据1,数据2,数据3,数据4,数据5,数据6"是以逗号分隔的字符串//并且这些字符串的连接是按(下标)顺序的alert(arr[0]);//当然,我们也可以直接访问其中第一个元素alert(arr[1]);//第二个alert(arr.length);//遇到的第一个数组对象的属性,length 属性用以表示数组中元素的个数,输出6

var arr;arr =new Array();//这样创建了一个空数组alert(arr);//输出为空,因为没有元素arr =new Array(3);//在申明时只放一个正整数表示数组的长度alert(arr.length);//输出3alert(arr);//输出两个逗号,它里面放了3个空元素//申明时指定了数组的长度,然后修改指定位置的值arr[2]="end";//将最后一位修改为"end"alert(arr);//并不是在数组申明时指定了长度就不能更改,更改长度很简单arr[8]="super";//数组长度将自动增长到8//记住,JavaScript 中数组长度会自动增长,并且length 属性会自动更新alert(arr.length);//输出9,JavaScript 中数组下标是从0开始的alert(arr[8]);//也可以在创建数组时就指定值arr =new Array(1,2,3,4,5,6,7,8);alert(arr);//如果在创建数组时只指定一个值,并且是正整数arr =new Array(6);//将得不到预期效果,因为这是在声明一个长度为6的空数组//需要这样

向数组中添加,删除元素(push,delete)

var arr=[2,4];

arr.push(6);//push方法将元素添加到数组未尾

alert(arr.length);//输出3

arr.push("a","b");//可以一次添加多个元素

alert(arr.length);//输出5

alert(arr[5]);//输出"b"

alert(arr.push(123));//push方法执行后会返回数组的新长度值,输出6

//事实上将元素添加到数组未尾的最简单的方法是

arr=[4,5];

arr[arr.length]="new element";//利用数组长度自动增长的特性

alert(arr.length);//输出3

//为了更明了的明白push的工作原理,我们可以使用一个简单的自定义函数来完成这项工作

function array_push(element,arr){//第一个参数为要添加的元素,第二个参数为该数组

arr[arr.length]=element;

return arr.length;

}

arr=[1,2,3];

array_push(345,arr);

alert(arr.length);//输出4

alert(array_push("some string",arr));//输出5

alert(arr);

//删除一个元素

arr=["#","$","%"];

alert(arr);

delete arr[2];

alert(arr);

alert(arr.length);//元素被删除了,但数组长度并没有变化,因为这样能使我们使用相同的下标访问以前的元素

//使用delete与下面的语句效果一样

arr=["#","$","%"];

alert(arr);

arr[2]=undefined;//undefined是一个值

alert(arr);

对象

var person=new Object();

person.age=18;

person.weight="123kg";

person.height="170cm";

person.arm=2;//两个臂膀

person.leg=2;

var obj={

a:123,//这里的a,b等同样是对象的属性名,必须符合变量命名规范,(或者也可以使用一些非负整数)

b:456//注意,最后没有逗号

};

alert(obj.a);

alert(obj.b);

//还可以这样写

obj={

"a":345,//虽然如果用引号引起来就可以使用空格等不符合变量命名规范的字符,但强烈不推荐

"b":333

};

alert(obj.a);//345

String对象以及一些用于字符串的方法和属性

var str=new String();

alert(str);//输出空字符串

str=new String("some string here");

alert(str);//输出字符串"some string here"

有很多用于处理字符串的方法以及一些属性

?length属性,返回字符串的长度

?indexOf方法,返回字符串内第一次出现子字符串的字符位置

?lastIndexOf方法,返回字符串中子字符串最后出现的位置

?charCodeAt方法,返回一个整数,代表指定位置上字符的Unicode编码

?fromCharCode方法,从一些Unicode字符值中返回一个字符串

?replace方法,进行文字替换,返回替换后的字符串的复制

?substr方法,返回一个从指定位置开始的指定长度的子字符串

?substring方法,返回位于String对象中指定位置的子字符串

?toLowerCase方法,返回一个字符串,该字符串中的字母被转换为小写字母

?toUpperCase方法,返回一个字符串,该字符串中的所有字母都被转化为大写字母?split方法,把字符串分割为字符串数组。

var str="some string here";

alert(str.length);//16

alert(str.indexOf("s"));//0,字符串的位置从0开始计数

alert(str.indexOf("o"));//1

alert(str.indexOf("k"));//没有找到时返回-1

alert(https://www.360docs.net/doc/f03577438.html,stIndexOf("e"));//15,从后往前查找

alert(str.charCodeAt(0));//115,小写s的Unicode编码

alert(String.fromCharCode(65,66,67,68));//返回ABCD,注意fromCharCode是String对象的静态方法

alert(str.replace("some","much"));//"much string here"

alert(str.substr(1,2));//uc,从下标1开始向后截取2个字符

alert(str.substring(1,2));//c,从下标1开始截取到下标2,不包括结束位置的字符

alert(str.toLowerCase());

alert(str.toUpperCase());

alert(str.split(""));//some,string,here

什么时候javascript

onclick,当鼠标点击一下时执行一次

?onmouseover,当鼠标放上去时执行一次

?onmouseout,当鼠标移出去时执行一次

?onmousedown,当鼠标按下时执行一次

?onmouseup,当鼠标在上面松开(弹起)时执行一次

?onmousedblclick,当鼠标双击时执行一次

?onload,当对象加载完成时执行一次

//.............若干若干代码之后

内存堆栈//当图象加载成功时执行一个函数

//.......

内存堆栈

正则表达式可以:

?测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证

?替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字

?根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字

字符描述

\转义字符,在之前,我们在字符串也用过这字符,即一些字符具有特殊含义,对其进行转义使它成为普通字符,而用在普通字符上又表示其有特殊含义

^匹配输入字符串的开始位置,如果设置了匹配多行(m),那么也匹配行的开头

$匹配输入字符串的结束位置。如果设置了匹配多行(m),那么也匹配行的结束

*匹配前面的子表达式零次或多次。例如,zo*能匹配"z"以及"zoo"。*等价于{0,}。

+匹配前面的子表达式一次或多次。例如,'zo+'能匹配"zo"以及"zoo",但不能匹配"z"。+等价于{1,}。

?匹配前面的子表达式零次或一次。例如,"do(es)?"可以匹配"do"或"does"中的"do"。?等价于{0,1}。

{n}n是一个非负整数。匹配确定的n次。例如,'o{2}'不能匹配"Bob"中的'o',但是能匹配"food"中的两个o。

{n,}n是一个非负整数。至少匹配n次。例如,'o{2,}'不能匹配"Bob"中的'o',但能匹配"foooood"中的所有o。'o{1,}'等价于'o+'。'o{0,}'则等价于'o*'。

{n,m}m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。刘,"o{1,3}"将匹配"fooooood"中的前三个o。'o{0,1}'等价于'o?'。请注意在逗号和两个数之间不能有空格。

?当该字符紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串"oooo",'o+?'将匹配单个"o",而'o+'将匹配所有'o'。

.匹配除"\n"之外的任何单个字符。要匹配包括'\n'在内的任何字符,请使用象'[.\n]'的模式。

(pattern)匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到,使用$0…$9属性。要匹配圆括号字符,请使用'\('或'\)'。

(?:patter匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供

n)以后使用。这在使用"或"字符(|)来组合一个模式的各个部分是很有用。例如,'industr(?:y|ies)就是一个比'industry|industries'更简略的表达式。

(?=patter n)正向预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,'Windows (?=95|98|NT|2000)'能匹配"Windows2000"中的"Windows",但不能匹配"Windows3.1"中的"Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。

(?!patter n)负向预查,在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows (?!95|98|NT|2000)'能匹配"Windows3.1"中的"Windows",但不能匹配"Windows2000"中的"Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始

x|y匹配x或y。例如,'z|food'能匹配"z"或"food"。'(z|f)ood'则匹配"zood"或"food"。

[xyz]字符集合。匹配所包含的任意一个字符。例如,'[abc]'可以匹配"plain"中的'a'。[^xyz]负值字符集合。匹配未包含的任意字符。例如,'[^abc]'可以匹配"plain"中的'p'。

[a-z]字符范围。匹配指定范围内的任意字符。例如,'[a-z]'可以匹配'a'到'z'范围内的任意小写字母字符。

[^a-z]负值字符范围。匹配任何不在指定范围内的任意字符。例如,'[^a-z]'可以匹配任何不在'a'到'z'范围内的任意字符。

\b匹配一个单词边界,也就是指单词和空格间的位置。例如,'er\b'可以匹配"never"

中的'er',但不能匹配"verb"中的'er'。

\B匹配非单词边界。'er\B'能匹配"verb"中的'er',但不能匹配"never"中的'er'。

\c x匹配由x指明的控制字符。例如,\cM匹配一个Control-M或回车符。x的值必须为A-Z或a-z之一。否则,将c视为一个原义的'c'字符。

\d匹配一个数字字符。等价于[0-9]。

\D匹配一个非数字字符。等价于[^0-9]。

\f匹配一个换页符。等价于\x0c和\cL。

\n匹配一个换行符。等价于\x0a和\cJ。

\r匹配一个回车符。等价于\x0d和\cM。

\s匹配任何空白字符,包括空格、制表符、换页符等等。等价于[?\f\n\r\t\v]。

\S匹配任何非空白字符。等价于[^?\f\n\r\t\v]。

\t匹配一个制表符。等价于\x09和\cI。

\v匹配一个垂直制表符。等价于\x0b和\cK。

\w匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。

\W匹配任何非单词字符。等价于'[^A-Za-z0-9_]'。

\x n 匹配n,其中n为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,'\x41'匹配"A"。'\x041'则等价于'\x04'&"1"。正则表达式中可以使用ASCII编码。.

\num匹配num,其中num是一个正整数。对所获取的匹配的引用。例如,'(.)\1'匹配两个连续的相同字符。

\n 标识一个八进制转义值或一个后向引用。如果\n之前至少n个获取的子表达式,则n为后向引用。否则,如果n为八进制数字(0-7),则n为一个八进制转义值。

\nm

标识一个八进制转义值或一个后向引用。如果\nm 之前至少有is preceded by at least nm 个获取得子表达式,则nm 为后向引用。如果\nm 之前至少有n 个获取,则n 为一个后跟文字m 的后向引用。如果前面的条件都不满足,若?n 和m 均为八进制数字(0-7),则\nm 将匹配八进制转义值nm 。\nml

如果n 为八进制数字(0-3),且m 和l 均为八进制数字(0-7),则匹配八进制转义值nml 。\u n 匹配n ,其中n 是一个用四个十六进制数字表示的Unicode 字符。例如,\u00A9

匹配版权符号(?)。

创建正则表达式

RegExp 构造函数第一个参数为正则表达式的文本内容,而第一个参数则为可选项标志.标志可以组合使用

?g (全文查找)

?i (忽略大小写)

?m (多行查找)正则表达式对象的方法

?test,返回一个Boolean 值,它指出在被查找的字符串中是否存在模式。如果存在则返回true ,否则就返回false 。

?exec,用正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组。

?compile,把正则表达式编译为内部格式,从而执行得更快。

正则表达式对象的属性

?source,返回正则表达式模式的文本的复本。只读。

?lastIndex,返回字符位置,它是被查找字符串中下一次成功匹配的开始位置。

?$1...$9,返回九个在模式匹配期间找到的、最近保存的部分。只读。

?input ($_),返回执行规范表述查找的字符串。只读。

?lastMatch ($&),返回任何正则表达式搜索过程中的最后匹配的字符。只读。

?lastParen ($+),如果有的话,返回任何正则表达式查找过程中最后括的子匹配。只读。

?leftContext ($`),返回被查找的字符串中从字符串开始位置到最后匹配之前的位置之间的字符。只读。

?rightContext ($'),返回被搜索的字符串中从最后一个匹配位置开始到字符串结尾之间的字符。只读。String 对象一些和正则表达式相关的方法

?match,找到一个或多个正则表达式的匹配。

var re =new RegExp();//RegExp 是一个对象,和Aarray 一样

//但这样没有任何效果,需要将正则表达式的内容作为字符串传递进去

re =new RegExp("a");//最简单的正则表达式,将匹配字母a

re=new RegExp("a","i");//第二个参数,表示匹配时不分大小写

var re =new RegExp("a","gi");//匹配所有的a 或A

?replace,替换与正则表达式匹配的子串。

?search,检索与正则表达式相匹配的值。

?split,把字符串分割为字符串数组。

//test方法,测试字符串,符合模式时返回true,否则返回false

var re=/he/;//最简单的正则表达式,将匹配he这个单词

var str="he";

alert(re.test(str));//true

str="we";

alert(re.test(str));//false

str="HE";

alert(re.test(str));//false,大写,如果要大小写都匹配可以指定i标志(i是ignoreCase或case-insensitive的表示)

re=/he/i;

alert(re.test(str));//true

str="Certainly!He loves her!";

alert(re.test(str));//true,只要包含he(HE)就符合,如果要只是he或HE,不能有其它字符,则可使用^和$

re=/^he/i;//脱字符(^)代表字符开始位置

alert(re.test(str));//false,因为he不在str最开始

str="He is a good boy!";

alert(re.test(str));//true,He是字符开始位置,还需要使用$

re=/^he$/i;//$表示字符结束位置

alert(re.test(str));//false

str="He";

alert(re.test(str));//true

//当然,这样不能发现正则表达式有多强大,因为我们完全可以在上面的例子中使用==或indexOf

re=/\s/;//\s匹配任何空白字符,包括空格、制表符、换页符等等

str="user Name";//用户名包含空格

alert(re.test(str));//true

str="user Name";//用户名包含制表符

alert(re.test(str));//true

re=/^[a-z]/i;//[]匹配指定范围内的任意字符,这里将匹配英文字母,不区分大小写

str="variableName";//变量名必须以字母开头

alert(re.test(str));//true

str="123abc";

alert(re.test(str));//false

当然,仅仅知道了字符串是否匹配模式还不够,我们还需要知道哪些字符匹配了模式

var osVersion="Ubuntu8";//其中的8表示系统主版本号

var re=/^[a-z]+\s+\d+$/i;//+号表示字符至少要出现1次,\s表示空白字符,\d表示一个数字alert(re.test(osVersion));//true,但我们想知道主版本号

//另一个方法exec,返回一个数组,数组的第一个元素为完整的匹配内容

re=/^[a-z]+\s+\d+$/i;

arr=re.exec(osVersion);

alert(arr[0]);//将osVersion完整输出,因为整个字符串刚好匹配re

//我只需要取出数字

re=/\d+/;

var arr=re.exec(osVersion);

alert(arr[0]);//8

//exec返回的数组第1到n元素中包含的是匹配中出现的任意一个子匹配

re=/^[a-z]+\s+(\d+)$/i;//用()来创建子匹配

arr=re.exec(osVersion);

alert(arr[0]);//整个osVersion,也就是正则表达式的完整匹配

alert(arr[1]);//8,第一个子匹配,事实也可以这样取出主版本号

alert(arr.length);//2

osVersion="Ubuntu8.10";//取出主版本号和次版本号

re=/^[a-z]+\s+(\d+)\.(\d+)$/i;//.是正则表达式元字符之一,若要用它的字面意义须转义

arr=re.exec(osVersion);

alert(arr[0]);//完整的osVersion

alert(arr[1]);//8

alert(arr[2]);//10

注意,当字符串不匹配re时,exec方法将返回null

String对象关于正则表达式方法

//replace方法,用于替换字符串

var str="some money";

alert(str.replace("some","much"));//much money

//replace的第一个参数可以为正则表达式

var re=/\s/;//空白字符

alert(str.replace(re,"%"));//some%money

//在不知道字符串中有多少空白字符时,正则表达式极为方便

str="some some\tsome\t\f";

re=/\s+/;

alert(str.replace(re,"#"));//但这样只会将第一次出现的一堆空白字符替换掉

//因为一个正则表达式只能进行一次匹配,\s+匹配了第一个空格后就退出了

re=/\s+/g;//g,全局标志,将使正则表达式匹配整个字符串

alert(str.replace(re,"@"));//some@some@some@

//另一个与之相似的是split

var str="a-bd-c";

var arr=str.split("-");//返回["a","bd","c"]

//如果str是用户输入的,他可能输入a-bd-c也可能输入a bd c或a_bd_c,但不会是abdc(这样就说他输错了)

str="a_db-c";//用户以他喜欢的方式加分隔符s

re=/[^a-z]/i;//前面我们说^表示字符开始,但在[]里它表示一个负字符集

//匹配任何不在指定范围内的任意字符,这里将匹配除字母处的所有字符

arr=str.split(re);//仍返回["a","bd","c"];

//在字符串中查找时我们常用indexOf,与之对应用于正则查找的方法是search

str="My age is18.Golden age!";//年龄不是一定的,我们用indexOf不能查找它的位置

re=/\d+/;

alert(str.search(re));//返回查找到的字符串开始下标10

//注意,因为查找本身就是出现第一次就立即返回,所以无需在search时使用g标志

//下面的代码虽然不出错,但g标志是多余的

re=/\d+/g;

alert(str.search(re));//仍然是10

正则表达式高级篇

([{\^$|)?*+.

自学指导教学文档

《初识电脑真面目》 (学生用) 一、自主探究,学习新知 (1)计算机的硬件系统由哪些部分组成?各个部分的主要作用是什么? (2)计算机的软件是怎么划分的?你经常用到过哪些应用软件? 计算机是一种强有力的信息处理工具,一个完整的计算机系统包括硬件系统和软件系统,二者缺一不可。硬件是“躯体”,软件的安装、运行、存储,都需要硬件的支持;软件是“思想”,硬件的正常运行、信息处理,都需要软件来指挥。硬件是指那些看得见、摸得着的物理部件的总和;软件是指计算机正常运行所需要的各种程序和数据,用来控制计算机各硬件的工作或者是帮助使用者完成某项任务。 一、计算机硬件系统的组成:具体由五大功能部件组成,即主板、中央处理器、存储器、输入设备和输出设备。这五大功能部件相互配合,协同工作。 1、主板又叫主机板、系统板或母板,它安装在机箱内,是最基本的也是最重要的部件之一。主板是整个微机内部结构的基础,不管是CPU、内存、显示卡还是鼠标、键盘、声卡、网卡都要通过主板来连接并协调工作。如果把CPU看成是微机的大脑,那么主板就是微机的身躯。当拥有了一个性能优异的大脑(CPU)后,同样也需要一个健康强壮的身体(主板)来运作。 2、中央处理器(CPU):运算器和控制器被合成在一块集成电路芯片上,这就是人们常说的CPU 芯片。中央处理器是计算机系统的核心,计算机发生的所有动作都是受CPU控制的。运算器负责对数据进行算术和逻辑运算(即对数据进行加工处理);控制器负责对程序所规定的指令进行分析、控制并协调输入、输出操作或对内存的访问。 3、存储器负责存储程序和数据,并根据控制命令提供这些程序和数据。 存储器是计算机的记忆部件,用于存放计算机进行信息处理所必须的原始数据、中间结果、最后结果以及指示计算机工作的程序。 计算机的存储器分为内存和外存。内存又称为主存。外存又称辅助存储器外存储器的容量一般都比较大,而且可以移动,便于不同计算机之间进行信息交流。常用的外存有磁盘、光盘和磁带等。磁盘又分为硬盘和软盘。USB闪存的普及,使得软盘有被淘汰的趋势。 4、输入设备负责把用户的信息(包括程序和数据)输入到计算机中。 在微型计算机系统中,最常用的输入设备有键盘和鼠标。 5、输出设备负责将计算机中的信息(包括程序和数据)传送到外部媒介供用户查看或保存。输出设备的作用是将计算机处理的结果传送到外部媒介,并转化成某种为人们所需要的表示形式。例如,将计算机中的程序、程序运行结果、图形、录入的文章等在显示器上显示出来,或者用打印机打印出来。最常用的输出设备是显示器和打印机。 二、计算机的软件组成:由系统软件和应用软件组成 1、系统软件专门负责管理计算机的各种资源,并提供操作计算机所需的界面。操作系统的功能有中央处理器管理、存储器管理、输入输出设备管理和文件系统管理。管理、监控和维护计算机资源

JavaScript面向对象简介

JavaScript面向对象简介 JavaScript 的核心是支持面向对象的,同时它也提供了强大灵活的OOP 语言能力。本文从对面向对象编程的介绍开始,带您探索JavaScript 的对象模型,最后描述 JavaScript 当中面向对象编程的一些概念。 复习JavaScript 如果您对JavaScript 的概念(如变量、类型、方法和作用域等)缺乏自信,您可以在重新介绍JavaScript这篇文章里学习这些概念。您也可以查阅这篇JavaScript 1.5 核心指南。 面向对象编程 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式。它使用先前建立的范例,包括模块化,多态和封装几种技术。今天,许多流行的编程语言(如Java,JavaScript,C#,C+ +,Python,PHP,Ruby 和Objective-C)都支持面向对象编程(OOP)。 面向对象编程可以看作是使用一系列对象相互协作的软件设计,相对于传统观念,一个程序只是一些函数的集合,或简单的计算机指令列表。在OOP中,每个对象能够接收邮件,处理数据和发送消息给其他对象。每个对象都可以被看作是一个独立的小机器有不同的作用和责任。 面向对象程序设计的目的是促进更好的编程灵活性和可维护性,并在大型软件工程中广为流行。凭借其十分注重的模块化,面向对象的代码开发更简单,往后维护更容易理解,使其自身能更直接的分析,编码,理解复杂的情况和过程,比非模块化编程方法省事。1

术语 Namespace 命名空间 允许开发人员在一个专用的名称下捆绑所有功能代码的容器。 Class 类 定义对象的特征。 Object 对象 类的一个实例。 Property 属性 对象的特征,比如颜色。 Method 方法 对象的能力,比如行走。 Constructor 构造函数 实例化时调用的函数。 Inheritance 继承 一个类可以继承另一个类的特征。 Encapsulation 封装 类定义了对象的特征,方法只定义了方法如何执行。 Abstraction 抽象 结合复杂的继承,方法,属性,一个对象能够模拟现实的模型。 Polymorphism 多态 多意为‘许多’,态意为‘形态’。不同类可以定义相同的方法或属性。更多关于面向对象编程的描述,请参照维基百科的面向对象编程。 原型编程

photoshop学习文档

PS抠图方法 一、魔术棒法——最直观的方法 适用范围:图像和背景色色差明显,背景色单一,图像边界清晰。 方法意图:通过删除背景色来获取图像。 方法缺陷:对散乱的毛发没有用。 使用方法:1、点击“魔术棒”工具; 2、在“魔术棒”工具条中,在“连续”项前打勾; 3、“容差”值填入“20”。(值可以看之后的效果好坏进行调节); 4、用魔术棒点背景色,会出现虚框围住背景色; 5、如果对虚框的范围不满意,可以先按CTRL+D取消虚框,再对上一步的 “容差”值进行调节; 6、如果对虚框范围满意,按键盘上的DELE键,删除背景色,就得到了单 一的图像。 二、色彩范围法——快速 适用范围:图像和背景色色差明显,背景色单一,图像中无背景色。 方法意图:通过背景色来抠图。 方法缺陷:对图像中带有背景色的不适用。 使用方法:1、颜色吸管拾取背景色; 2、点击菜单中“选择”功能里的“色彩范围”功能; 3、在“反相”项前打勾,确定后就选中图像了。 三、磁性索套法——方便、精确、快速和我常用的方法 适用范围:图像边界清晰。

方法意图:磁性索套会自动识别图像边界,并自动黏附在图像边界上。 方法缺陷:边界模糊处需仔细放置边界点。 使用方法:1、右击“索套”工具,选中“磁性索套”工具; 2、用“磁性索套”工具,沿着图像边界放置边界点,两点之间会自动产生一 条线,并黏附在图像边界上。 3、边界模糊处需仔细放置边界点。 4、索套闭合后,抠图就完成了。 四、(索套)羽化法——粗加工 适用范围:粗略的抠图。 方法意图:粗略抠图,不求精确。 方法缺陷:图像边界不精确。 使用方法:1、点击“索套”工具; 2、用索套粗略地围住图像,边框各处要与图像边界有差不多的距离;这点 能保证之后羽化范围的一致性,提高抠图的精确性; 3、右击鼠标,选择“羽化”功能; 4、调节羽化值,一般填入“20”,确定后就粗略选中图像了。羽化值的大小, 要根据前一步边框与图像的间距大小调节。 五、(索套)钢笔工具法——最精确最花工夫的方法 适用范围:图像边界复杂,不连续,加工精度度高。 方法意图:完全*手工逐一放置边界点来抠图。 方法缺陷:慢。抠一个图连手脚指都抠的话,要15分钟左右。 使用方法:

基于对象的JavaScript语言

基于对象的JavaScript语言 一、对象的基本结构 JavaScript中的对象是由属性(properties)和方法(methods)两个基本的元素的构成的。属性是对象在实施其所需要行为的过程中,实现信息的装载单位,从而与变量相关联;方法是指对象能够按照设计者的意图而被执行,从而与特定的函数相联。 二、引用对象的途径 一个对象要真正地被使用,可采用以下几种方式获得: 1、引用JavaScript内部对象;this window 2、由浏览器环境中提供;https://www.360docs.net/doc/f03577438.html, 3、创建新对象。new 这就是说一个对象在被引用之前,这个对象必须存在,否则引用将毫无意义,而出现错误信息。 三、有关对象操作语句 1、For...in语句 格式如下:For(对象属性名in 已知对象名) 说明:该功能是用于对已知对象的所有属性进行操作的循环控制。它是将一个已知对象的所有属性反复置给一个变量;而不是使用计数器来实现的。它的优点是无需知道对象中属性的个数即可进行操作。 2、with语句 使用该语句的意思是:在该语句体内,任何对变量的引用被认为是这个对象的属性,以节省一些代码。with object{ ...} 所有在with语句后的花括号中的语句,都是在后面object对象的作用域的。 3、this关键字 this是对当前的引用,在JavaScript由于对象的引用是多层次,多方位的,往往一个对象的引用又需要对另一个对象的引用,而另一个对象有可能又要引用另一个对象,这样有可能造成混乱,最后自己已不知道现在引用的那一个对象,为此JavaScript提供了一个用于将对象指定当前对象的语句this。 4、New运算符可以创建一个新的对象 格式:

JavaScript面向对象编程(最终版)

JavaScript面向对象编程 1、引言 JavaScript是一种解释性的,基于对象的脚本语言(an interpreted, object-based scripting language)。JavaScript 基于客户端运行,目前基本上所有的浏览器都支持JavaScript。1995年首次出现时,JavaScript的主要目的还只是处理一些输入的有效性验证,随着互联网的蓬勃发展,JavaScript的应用越来越广泛,特别是近几年AJAX技术(Asynchronous JavaScript and XML)的发展,更使JavaScript的应用达到了一个新的高度。在AJAX技术中,JavaScript是一项关键技术,请求的发送、接收、接收数据后的界面处理都需要使用JavaScript技术,这对JavaScript语言提出了新的需求,本文从JavaScript的基本特点出发,模拟出了面向对象编程的大部分特点,使JavaScript摆脱了以往脚本语言杂乱无章、难以阅读、难以维护的形象,而具有了面向对象特性,极大的方便了JavaScript的开发、维护,提高了软件开发效率。 2、JavaScript的基本特点 JavaScript是解释性的,基于对象的脚本语言。它有下面几个显著特点,这几个特点在后面的面向对象特性模拟中会反复用到,因此这里先详细说明这几个特点。 解释型语言:JavaScript是一种解释性语言,解释性语言相对于编译型语言,编译型语言必须先通过编译才能执行,而解释性语言不需要编 译,直接从上到下解释执行,一边解释一边执行,这就决定了解释性语 言的代码是有先后顺序的,需要执行的代码必须已经解释过。因此, JavaScript需要注意代码的先后顺序。

阅读自学教学文档

合作讨论学习 摘要:学习小组在开放性学习中的重要性不言而喻,但是现实教学过程中,学习小组逐渐成了学生学习的一种负担,没有达到预期的目的。本文首先讨论了学习小组的重要作用,随后分析了当前学习小组存在的问题,进而提出了对学习小组存在形式的思考与探索。 关键词:语文教学学习小组讨论 语文是实践性很强的课程,无论是阅读、写作还是口语交际,都离不开学生个体的感受、理解、揣摩、咀嚼、体验、感悟。在语文教学中,教师不是茶壶,学生不是茶杯,学语文必须是亲历语文情境,眼看、耳听、心想,使学生能自主阅读、自主写作、自主学习。现在广泛应用的新《语文课程标准》(北京师范大学2001年版)中,提到“改变课程过于注重知识传授的倾向,强调形成积极主动的学习态度,使获得知识与技能的过程成为学会学习和形成正确价值观的过程。”新课程标准从基本理念到课程的目标,从教学建议到评价建议都体现了让学生真正走进语文,不是观望,而是动手解读,主动尝试体验,积极探究的取向。这对老师和学生都有新的要求,教学过程应该是一个开放平等互动的对话过程,要强化“自主、合作、探究”的教学模式,尽可能创设一种和谐、愉悦的课堂氛围,教师应成为知识型的主持人,充分调动学生的积极性、参与热情,把学生的聪明才智激发出来,使学生在课堂上拥有一种成功感和一份自信心。面对这样的形势,学习小组,这种古老的学习方式,重新被推出了历史的舞台,成为当前语文学习中的新看点。 一、学习小组合作讨论学习的重要作用 课堂中让学生组成小组讨论,作为一种契合新课程标准要求的学习方式,全面地走进我们的课堂,深受广大语文教师的欢迎,它不仅能促进学生思想的发展,还有利于增强学生的参与和合作意识、活跃课堂气氛,提高课堂效率,实现课堂教学的最优化。 1、小组讨论活动培养主动学习者。撰写《小组教学活动导论》的米勒认为,在教学过程中开展小组讨论的最大价值在于,它能够为培养学生从被动的重复者变为主动的学习者提供条件。小组活动允许学生去发现事物和知识的意义、表述自己的意见和看法。在主动活动中获取的知识和技能不仅比死记硬背教材获得的东西更生动,而且更容易被运用。 2、小组讨论活动增进合作精神与能力。在现代社会中,随着家庭规模的缩小,学生之间进行的同龄人交流越来越少。根据学者的调查和我们自己的观察,很容易就可以发现现在的学生很多以自我为中心,缺乏团队精神。教师设置的小组讨论一般必须通过群体合作才能取得较好结果的活动,这可以使他们更多的与同龄人接触,为了共同的目标一起运用智慧和发挥能力去努力获取结果。这种不着痕迹的团队精神和合作意识的培养将潜移默化的改变他们的为人处事方式。 3、小组讨论可以实现教师的“教”与学生的“学”之间的双赢。有人说:语文课堂上,在语文老师带领下,学生能思考学习,是一个基本合格的语文老师;语文老师不进行引导,学生能自发的主动思考学习,是一个优秀的语文老师;有语文老师讲授,学生仍不能自觉去思考学习,则是一个失败的语文老师。老师引导得法的小组讨论教学模式,一方面可以使学生学会自学,另一方面能够激发学生使学生能够主动质疑教材提出问题或者思考问题,使任课教师明白哪些是学生无法理解或者理解有偏差的问题,需要重点讲解引导,这即可以为教师的教学“减负”又可以活跃课堂气氛,还可以将课堂上40分钟的效益推到最高。 学习小组在开放性学习中的重要性不言而喻,但是现实教学过程中,学习小组的讨论学习因为引导不当走入误区,学习小组讨论学习成为一种负担,没有达到预期的目的。 二、当前学习小组存在的问题。

如何判断Javascript对象是否为空

如何判断Javascript对象是否存在 Javascript语言的设计不够严谨,很多地方一不小心就会出错。 举例来说,请考虑以下情况。 现在,我们要判断一个全局对象myObj是否存在,如果不存在,就对它进行声明。用自然语言描述的算法如下: if (myObj不存在){ 声明myObj; } 你可能会觉得,写出这段代码很容易。但是实际上,它涉及的语法问题,远比我们想象的复杂。Juriy Zaytsev指出,判断一个Javascript对象是否存在,有超过50种写法。只有对Javascript语言的实现细节非常清楚,才可能分得清它们的区别。 第一种写法 根据直觉,你可能觉得可以这样写: if (!myObj) {

myObj = { }; } 但是,运行这段代码,浏览器会直接抛出ReferenceError错误,导致运行中断。请问错在哪里? 对了,if语句判断myObj是否为空时,这个变量还不存在,所以才会报错。改成下面这样,就能正确运行了。 if (!myObj) { var myObj = { }; } 为什么加了一个var以后,就不报错了?难道这种情况下,if语句做判断时,myObj 就已经存在了吗? 要回答这个问题,就必须知道Javascript解释器的工作方式。Javascript语言是"先解析,后运行",解析时就已经完成了变量声明,所以上面的代码实际等同于:var myObj; if (!myObj) { var myObj = { };

因此,if语句做判断时,myObj确实已经存在了,所以就不报错了。这就是var 命令的"代码提升"(hoisting)作用。Javascript解释器,只"提升"var命令定义的变量,对不使用var命令、直接赋值的变量不起作用,这就是为什么不加var会报错的原因。 第二种写法 除了var命令,还可以有另一种改写,也能得到正确的结果: if (!window.myObj) { myObj = { }; } window是javascript的顶层对象,所有的全局变量都是它的属性。所以,判断myobj是否为空,等同于判断window对象是否有myobj属性,这样就可以避免因为myObj没有定义而出现ReferenceError错误。不过,从代码的规范性考虑,最好还是对第二行加上var: if (!window.myObj) { var myObj = { };

来自习惯,自学的体会文档

来自习惯,自学的体会文档Experience document from habit and self study 编订:JinTai College

来自习惯,自学的体会文档 小泰温馨提示:心得体会是指一种读书、实践后所写的感受性文字。语言类读书心得同数学札记相近;体会是指将学习的东西运用到实践中去,通过实践反思学习内容并记录下来的文字,近似于经验总结。本文档根据心得体会内容要求和针对主题是读书学习群体的特点展开说明,具有实践指导意义,便于学习和使用,本文下载后内容可随意修改调整及打印。 有人说,“优秀是一种习惯”,最终的成功是依靠平时一点一滴的积累达到的,从量变上升到质变,即所谓的平时有好的学习习惯,才会使我们最终取得好的成绩。所以在平时的学习当中就要严格要求自己,力求扎实的功底,为日后的考试做好准备。 在此我就谈谈我的学习习惯。 一、尽量做到课前预习,尤其是基础课,注意上课笔记。 二、坚听挺好每一堂课,知识的积累重在平时的点点滴滴,虽然一些需要记忆的课程,临阵磨枪有一定的作用,但基础课程仍在于平时的功夫,在于潜移默化,扎扎实实,稳步提高。

三、及时的针对所学内容作总结、联系。即对所学课程及时做一些针对性联系,以了解重点,从而为将来总复习打基础。 四、考前要有针对性的增加习题训练,起到查漏补缺的作用,最后做一些模拟题型、模式。 五、在不临考时,也不能松懈,而应主动培养自己的英语意识,多听英语广播、音乐,以及多看英语方面的书籍与节目等,同时如有充裕时间,可针对自身的弱点有选择的参加一些辅导班。 除了以上这几点,我认为还需要时时保持一种紧张状态,即在规定课程未全部达到要求之前,绝不能有所放松,从而争取最后的胜利。 在努力通过考试的同时,也应注意培养自身的能力,包括运用知识的能力,适应社会的能力等。在学习的过程中,注意磨砺自己的意志,培养积极、向上、乐观的心理状态,从而迎接人生中的每一次挑战和考验。 -------- Designed By JinTai College ---------

前端框架ZK自学文档汇总

ZK开发说明 1.什么是ZK 定义:一种用户界面开发框架。 特点:基于AJAX事件驱动、丰富的XUL[1]和XHTML[2]、ZUML(ZK用户界面标记语言)。 原理: ?ZK loader: 由一系列Java servlets组成,负责接受URL request生成相应的HTML页面(包括css,javascript,ZK组件). ?ZK AU(asynchronous update): 即ZK异步更新引擎,负责接收Ajax requests,更新ZK组件属性,并将response返回客户端. ?ZK client engine:ZK客户端引擎,由一些列javascript组成,负责监控浏览器javascript事件队列,如果有事件触发就将事件以Ajax requests的方式发送到服务器端的ZK异步更新引擎,然后接收ZK异步 更新引擎返回的应答更新页面。

2.ZK的优缺点 优点: 1.几乎可不用JS,组件的形式方便复用,便捷开发。 2.界面与服务器端直接交互,可直接使用JAVA对象,比使用dwr或 buffalo更方便。 3. 缺点:IE早期的版本不是标准的W3C规范,所以兼容性会较差。 3.ZK的常用开发说明 3.1.页面与JAVA类关联 页面与Java类关联主要用到2种方式。一种是写成窗体的形式(window),在页面中指定对应的JAVA类,图1;一种是写成插件的形式(ext),在JAVA类中指定对应的页面,图2。 图1 窗体

图2 插件 3.1.1.Window 写成Window,在ZUL页面中使用apply或use属性指定对应的JAVA类。Apply 和use的使用方法如下: Use:使用一个组件类,该类必须是当前组件对应接口的实现。方法里面不实现doAfterCompose Apply:应用一个构建器类,这个类必须是FullComposer或Composer的实现类或实现类的子类(我们一般是继承GenericForwardComposer)。apply是帮助类,帮助use类或默认组件类构建当前组件。可以apply多个类帮助构建,使用逗号隔开。由于在组件及其子组件初始化之后会调用doAfterCompose方法,所以你可以在doAfterCompose方法内进行初始化。 指定对应的JAVA类时,有两种方式。一种是直接指定包路径和类名,如 apply="https://www.360docs.net/doc/f03577438.html,mon.ui.EntityLoadComposer"

JAVASCRIPT常用对象参考

JavaScript常用对象参考 分类:WEB2008-08-2116:09160人阅读评论(0)收藏举报 JavaScript常用对象参考 Math document body selection window screen location history Date String Event Math对象 E返回欧拉常数e的值 LN1010的自然对数的值 LN22的自然对数的值 LOG2E基数为2的e的对数的值 LOG10E基数为10的e的对数的值 PI圆周率pai的值:3.14159265358979 SQRT1_2返回0.5的平方根 SQRT2返回2的平方根 abs(number)计算number的绝对值 cos(number)计算余弦值 acos(number)计算反余弦值 sin(number)计算正弦值 asin(number)计算反正弦值 tan(number)计算正切值 atan(number)计算反正切值 atan2(x,y)根据指定的坐标返回一个弧度值 ceil(number)返回大于或等于number的整数 floor(number)返回小于或等于number的整数 exp(value)计算以e为基数的value次方的值 log(value)是exp(value)的反方法 max(num1,num2,…)返回两个或多个参数中的最大值 min(num1,num2,…)返回两个或多个参数中的最小值 pow(m,n)计算m的n次方 random()生成0到1的随机数[0,1).生成n到m之间的随机数n+(m-n)*Math.random() round(number)取整(四舍五入) sqrt(number)开平方运算 document write() writeln() open()"打开文档以收集write或writeln方法的输 出:document.open([sURL][,sName][,sFeatures][bReplace]) sName:_blank,_media,_parent,_search,_self,_top sURL:可选项,字符串表达式,用于指定打开文档或窗口的URL地址sFeatures:可选项,字符串表达式,用于指定打开窗口的属性sReplace:true or false;" sFeatures:fullscreen,height,width,left,top,location,resizable,scrollbars,status,toolbar close()关闭输出流 createElement(tag)根据指定标记创建一个HTML标签getElementById(id)获得指定id的HTML元素removeChild(e)移除一个指定的子元素e replaceChild(new,e ) 用new元素替换子元素e appendChild(e)增加一个子元素e(最后) insertBefore(new,e ) 在子元素e前面插入一个new元素

word文档学习

1、 Word表格玩自动填充 在Word表格里选中要填入相同内容的单元格,单击“格式→项目符号和编号”,进入“编号”选项卡,选择任意一种样式,单击“自定义”按钮,在“自定义编号列表”窗口中“编号格式”栏内输入要填充的内容,在“编号样式”栏内选择“无”,依次单击“确定”退出后即可。 2、 Word中巧输星期 单击“格式→项目符号和编号”,进入“编号”选项卡,单击“自定义”按钮,在“编号样式”栏内选择“一、二、三”等样式,在“编号格式”栏内的“一”前输入“星期”即可。 3、粘贴网页内容 在Word中粘贴网页,只须在网页中复制内容,切换到Word中,单击“粘贴”按钮,网页中所有内容就会原样复制到Word中,这时在复制内容的右下角会出现一个“粘贴选项”按钮,单击按钮右侧的黑三角符号,弹出一个菜单,选择“仅保留文本”即可。 4、快速转换大写金额 在Word中输入12345,然后点击“插入→数字”命令,在弹出的“数字”对话框“数字类型”栏里选择中文数字版式“壹、贰、叁”单击“确定”,则12345就变成中文数字“壹万贰仟叁佰肆拾伍”。 5、去掉自动编号功能 点击“工具→自动更正选项”,打开“自动更正”对话框,进入“键入时自动套用格式”选项卡,找到“键入时自动应用”组中的“自动编号列表”复选项,取消前面的钩即可。这样就可以去掉那些“烦心”的自动编号功能。同样也可去除“画布”,方法是:点击“工具→选项”,进入“常规”选项卡,去除“插入‘自选图形’时自动创建绘图画布”复选框上的钩即可。

6、画出不打折的直线 在Word中如果想画水平、垂直或“15 、30 、45 、75 ”角的直线,只须在固定一个端点后,按住Shift键,上下拖动鼠标,将会出现上述几种直线选择,位置调整合适后松开Shift 键即可。 7、加减乘除松输入 i和I在中文输入法智能ABC中有着特殊的意义,它们可以作为输入小写和大写中文数字的前导字符,还可以用来将数字运算符号变为相应的汉字,在i或I后面输入、—、*、/,按回车键或空格键,即可得到与之对应的汉字加、减、乘、除。 8、部分加粗表格线 在Word中需要加粗某一条或几条表格线时,可以先在工具栏选项中点击“表格和边框”按钮,然后在“表格和边框”窗口选定“线型”与“线宽”,再点击“绘制表格”按钮,最后在欲加粗的表格线上从头到尾画上一笔即可。 9、打造整齐的Word公式 使用Word公式编辑器创建公式后,你如果感到其中的公式不整齐(特别是矩阵形式的公式),那么你可以通过下列方式进行微调:单击该公式,右键进入“设置对象格式”,选择“版式”中任意一种形式,单击“确定”,再选中需要调整的项;按下Ctrl键后,利用光标上下左右移动对该项进行微调;重复上下左右移动对该项进行微调;重复上述步骤,直到将公式位置调整到满意为止。 10、文字旋转轻松做 在Word中可以通过“文字方向”命令来改变文字的方向。但也可以用以下简捷的方法来做。选中要设置的文字内容,只要把字体设置成“@字体”就行,比如“@宋体”或“@黑体”,就可使这些文字逆时针旋转90度了。把文字替换成图片

项目18—JAVASCRIPT内置对象和函数

教学方法教学目标教学重点教学难点 教学过程 教学目标 1、掌握JavaScript 内置函数的应用 2、掌握JavaScript 内置对象的应用 3、掌握JavaScript 浏览器对象的应用

教学方法教学目标教学重点 教学难点 教学过程 教学重点 1、掌握JavaScript 内置函数的使用方法 2、掌握JavaScript 常用内置对象的属性和方法 3、掌握JavaScript 浏览器对象的含义

教学方法教学目标教学重点 教学难点 教学过程 教学难点 1、掌握使用浏览器对象提供的信息来完成一定功能的网页设计。

教学方法教学目标教学重点 教学难点 教学过程 教学方法 1、项目工程互动式教学法 2、“讲、学、观察”相结合

教学方法教学目标教学重点教学难点教学过程 一、JavaScript 内置函数的应用 JavaScript 中的系统函数又称内部方法。它提供了与任何对象无关的系统函数,使用这些函数不需创建实例,可以直接用。 1、eval( ):计算字符串表达式的值 2、parseFloat( )和parseInt( ):将字符串开头的整数或浮点数分解出来,转换为整数或浮点数 3、isNaN( ):确定一个变量是否为NaN (Not a Number ) 4、escape( ):将字符串中的非字母数字字符转换为按格式%XX 表示的数字 5、unescape( ):将字符串格式为%XX 的数字转换为字符

教学方法 教学目标教学重点教学难点 教学过程 6、程序案例1:求用户在提示对话框中输入的表达式的值。 eval( )内置函数的用法:计算字符串表达式的值。

教师自学计划文档

教师自学计划文档Teacher self study plan document

教师自学计划文档 小泰温馨提示:工作计划是对一定时期的工作预先作出安排和打算时制定工作计划,有了工作计划,工作就有了明确的目标和具体的步骤,大家协调行动,使工作有条不紊地进行。工作计划对工作既有指导作用,又有推动作用,是提高工作效率的重要手段。本文档根据工作计划的书写内容要求,带有规划性、设想性、计划性、方案和安排的特点展开说明,具有实践指导意义。便于学习和使用,本文下载后内容可随意修改调整修改及打印。 1、通过学习,使自身提高政治素养,牢固树立为教育事 业而奋斗终身的信念。 2、通过学习,进一步自身的教育理念,牢固树立基础教 育改革的一个根本理念,即以学生发展为本,尊重学生,信任学生,帮助学生,指导学生,促使每一个学生得到生动活泼的发展,教师与学生共同成长。 3、通过学习,积极投入到当前基础教育课程改革中来, 理解把握课程改革的精髓与实质,从而能规范地实施课程,不仅成为执行者,还要成为课程的设计者、开发者和创造者。 4、通过学习,切实提高自身的教学素养,提高开展高效 的教育教学活动的水平与能力,促进在教改中的实践能力与创新能力的提高。

根据自身情况,我主要将学习内容分为政治业务理论、教育教学技能、教育科学研究、个人修养四大板块。本学期,在政治业务理论学习上,我将会继续开展“胡总书记在教育工作会议上的讲话”学习活动,教学方面将围绕课题“提高课堂教学语言艺术性”开展自学和研究课,而在教育科学研究、个人修养方面,也有“快乐阅读”、“做学生的好朋友”等有益的自学活动。 学习内容 1、制定本学期自身学习计划。 2、新课标学习,强化自身理论知识。 3、学习“做人民满意教师”报告精神并完成学习体会。 4、学习“胡总书记在教育工作会议上的讲话”精神。 1、利用网络进行学习交流,广泛收集网络教案进行交流备课。 2、“快乐阅读”活动之一—“教育散文类”书籍的阅读 3、开展以“提高课堂教学语言艺术性”为主题的教学实践活动。 1、如何加强课堂语言的精练、组织教学活动的研讨。

JAVASCRIPT面向对象基础总结

javascript面向对象基础 1.使用[]调用对象的属性和方法 functionUser() { this.age=21; this.sex="男?"; } varuser=newUser(); alert(user["age"]); 2.动态添加,修改,删除对象的属性和方法//定义类varuser=newObject(); //添加属性和方法 https://www.360docs.net/doc/f03577438.html,="cary"; user.age=21; user.show=function(){ alert(https://www.360docs.net/doc/f03577438.html,+"年?龄?为?:?"+this.age);} //执行方法 user.show(); //修改属性和方法 https://www.360docs.net/doc/f03577438.html,="James"; user.show=function() { alert(https://www.360docs.net/doc/f03577438.html,+"你?好?"); } //执行方法 user.show(); //删除属性和方法 https://www.360docs.net/doc/f03577438.html,="undefined"; user.show="undefined" //执行方法 user.show(); 3.使用大括号{}语法创建无类型对象varobj={}; varuser= { name:"cary", age:21,

show:function(){ alert(https://www.360docs.net/doc/f03577438.html,+"年?龄?为?:?"+this.age); } } user.show(); varobj={};等价于 varobj=newObject(); 4.Prototype原型对象 每个函数function也是一个对象,对应的类类型为“Function”,每个函数对象都有一个子对象prototype,表示函数的原型,所以当我们new一个类的对象的时候prototype对象的成员都会被实例化为对象的成员。例如: functionclass1() {} class1.prototype.show=function(){ alert("prototyemember"); } varobj=newclass1(); obj.show(); 5.Function函数对象详解 5.1Function和Date,Array,String等一样都属于JavaScript的内部对象,这些对象的构造器是由JavaScript本身所定义的。上面说过函数对象对应的类型是Function,这个和数组的对象是Array一个道理。所以也可以像newArray()一样newFunction()来创建一个函数对象,而函数对象除了使用这种方式还可以使用function关键字来创建。我们之所以不经常使用newFunction()的方式来创建函数是因为一个函数一般会有很多语句,如果我们将这些都传到newFunction()的参数中会显得可读性比较差。varfunctionName=newFunction(p1,p2,...,pn,body)其中p1到pn为参数,body为函数体。 5.2有名函数和无名函数 有名函数:functionfuncName(){}无名函数:varfuncName=function(){}他们之间的唯一区别:就是对于有名函数他可以出现在调用之后再定义,而对于无名函数,他必须是在调用之前就已经定义好。 5.3我们可以利用Function的prototype对象来扩展函数对象,如: Function.prototype.show=function(){ alert("扩展方法"); }

photoshop学习文档

、魔术棒法——最直观的方法 适用范围:图像和背景色色差明显,背景色单一,图像边界清晰。 方法意图:通过删除背景色来获取图像。 方法缺陷:对散乱的毛发没有用。 使用方法:1、点击“魔术棒”工具; 2、在“魔术棒”工具条中,在“连续”项前打勾; 3、“容差”值填入“20”。(值可以看之后的效果好坏进行调节) 4、用魔术棒点背景色,会出现虚框围住背景色; 5、如果对虚框的范围不满意,可以先按CTRL+D 取消虚框,再对上一步的“容差”值进行调 节; 6、如果对虚框范围满意,按键盘上的DELE 键,删除背景色,就得到了单 的图像。 、色彩范围法——快速 适用范围:图像和背景色色差明显,背景色单一,图像中无背景色。 方法意图:通过背景色来抠图。 方法缺陷:对图像中带有背景色的不适用。 使用方法:1、颜色吸管拾取背景色; 2、点击菜单中“选择”功能里的“色彩范围”功能; 3、在“反相”项前打勾,确定后就选中图像了。 三、磁性索套法——方便、精确、快速和我常用的方法 适用范围:图像边界清晰。 方法意图:磁性索套会自动识别图像边界,并自动黏附在图像边界上。 方法缺陷:边界模糊处需仔细放置边界点。

使用方法:1、右击“索套”工具,选中“磁性索套”工具; 2、用“磁性索套”工具,沿着图像边界放置边界点,两点之间会自动产生一条线,并黏 附在图像边界上。 3、边界模糊处需仔细放置边界点。 4、索套闭合后,抠图就完成了。 四、(索套)羽化法——粗加工 适用范围:粗略的抠图。 方法意图:粗略抠图,不求精确。 方法缺陷:图像边界不精确。 使用方法:1、点击“索套”工具; 2、用索套粗略地围住图像,边框各处要与图像边界有差不多的距离;这点 能保证之后羽化范围的一致性,提高抠图的精确性; 3、右击鼠标,选择“羽化”功能; 4、调节羽化值,一般填入“20”,确定后就粗略选中图像了。羽化值的大小, 要根据前一步边框与图像的间距大小调节。 五、(索套)钢笔工具法——最精确最花工夫的方法 适用范围:图像边界复杂,不连续,加工精度度高。 方法意图:完全* 手工逐一放置边界点来抠图。 方法缺陷:慢。抠一个图连手脚指都抠的话,要15分钟左右。 使用方法: 钢笔工具法步骤如下:

JS对象属性及方法完美总结之最终版

●Date ●属性(1): ●constructor 所建立对象的函数参考 ●prototype 能够为对象加入的属性和方法 ●方法(43): ●getDay() 返回一周中的第几天(0-6) ●getYear() 返回年份.2000年以前为2位,2000(包含)以后为4位 ●getFullYear() 返回完整的4位年份数 ●getMonth() 返回月份数(0-11) ●getDate() 返回日(1-31) ●getHours() 返回小时数(0-23) ●getMinutes() 返回分钟(0-59) ●getSeconds() 返回秒数(0-59) ●getMilliseconds() 返回毫秒(0-999) ●getUTCDay() 依据国际时间来得到现在是星期几(0-6) ●getUTCFullYear() 依据国际时间来得到完整的年份 ●getUTCMonth() 依据国际时间来得到月份(0-11) ●getUTCDate() 依据国际时间来得到日(1-31) ●getUTCHours() 依据国际时间来得到小时(0-23) ●getUTCMinutes() 依据国际时间来返回分钟(0-59) ●getUTCSeconds() 依据国际时间来返回秒(0-59) ●getUTCMilliseconds()依据国际时间来返回毫秒(0-999) ●getTime() 返回从1970年1月1号0:0:0到现在一共花去的毫秒数 ●getTimezoneoffset() 返回时区偏差值,即格林威治平均时间(GMT)与运行脚本的计算机所处时区设置之间相差的 分钟数) ●parse(dateString) 返回在Date字符串中自从1970年1月1日00:00:00以来的毫秒数 ●setYear(yearInt) 设置年份.2位数或4位数 ●setFullYear(yearInt)设置年份.4位数 ●setMonth(monthInt) 设置月份(0-11) ●setDate(dateInt) 设置日(1-31) ●setHours(hourInt) 设置小时数(0-23) ●setMinutes(minInt) 设置分钟数(0-59) ●setSeconds(secInt) 设置秒数(0-59) ●setMilliseconds(milliInt) 设置毫秒(0-999) ●setUTCFullYear(yearInt) 依据国际时间来设置年份 ●setUTCMonth(monthInt) 依据国际时间来设置月(0-11) ●setUTCDate(dateInt) 依据国际时间来设置日(1-31) ●setUTCHours(hourInt) 依据国际时间来设置小时 ●setUTCMinutes(minInt) 依据国际时间来设置分钟 ●setUTCSeconds(secInt) 依据国际时间来设置秒 ●setUTCMilliseconds(milliInt)依据国际时间来设置毫秒 ●setTime(timeInt) 设置从1970年1月1日开始的时间.毫秒数 ●toGMTString() 根据格林威治时间将Date对象的日期(一个数值)转变成一个GMT时间字符串,如:Weds,15 June l997 14:02:02 GMT ●toUTCString() 根据通用时间将一个Date对象的日期转换为一个字符串 ●toLocaleString() 把Date对象的日期(一个数值)转变成一个字符串,使用所在计算机上配置使用的特定日期格 式 ●toSource() 显示对象的源代码

怎样自学口才文档

2020 怎样自学口才文档Document Writing

怎样自学口才文档 前言语料:温馨提醒,公务文书,又叫公务文件,简称公文,是法定机关与社会组 织在公务活动中为行使职权,实施管理而制定的具有法定效用和规范体式的书面文 字材料,是传达和贯彻方针和政策,发布行政法规和规章,实行行政措施,指示答 复问题,知道,布置和商洽工作,报告情况,交流经验的重要工具 本文内容如下:【下载该文档后使用Word打开】 自学口才的方法:如何提高孩子的口才 一、帮助孩子树立自信 小孩子的自尊心往往比成人脆弱得多,在陌生人面前讲话,往往会担心自己的表达得不到别人的认同,从而不敢言语。 ·请放下您对孩子语言表达的要求和期待。 ·给予孩子积极的鼓励。不要否定和打击孩子,家长应该用鼓励来代替责备,信任孩子,并给予热切的回应和正确的帮助。 ·认真倾听孩子的演讲 小孩子长到一定年纪,一坐到饭桌前就喜欢开始他的“演讲”,讲他和小朋友的故事,讲他看到的、想到的,甚至把大人给他讲的故事,再讲给大人听。有时讲得兴致勃勃、眉飞色舞,忘记了吃饭。这时如果家长严厉制止孩子,“有话吃完饭再说”。很可能饭后孩子就失去了讲故事的兴趣,连刚才准备好的故事都讲不全了。相反,应该给以适当的引导,并将这种“饭桌演讲”发展成为有目的、有组织的培养口语表达能力的自觉行动。

二、鼓励孩子多看、多听、多讲 可以利用一些生动有趣、丰富多彩的演讲视频和有声读物,让孩子多看多听,孩子天生的模仿能力会指引他们潜移默化的学习。这对提升孩子的语言表达能力有着很大的帮助。 三、培养阅读习惯,注重素材积累 无论什么样的讲话形式,内容才是灵魂。让孩子的讲话内容更丰富,思想更成熟,必须要经过扎实的日常积累。日常积累最简单有效的方法便是阅读。养成优秀的阅读习惯能使孩子受益终生。胸中有丘壑,自然出口成章。 自学口才的方法:口才训练四部分 第一:发声的部分 这个阶段,老师需要指导你学会胸腹式联合呼吸法,学会如何控制自己的气息,以及找到合适的口腔、喉部的状态。用声错误、喉部挤压、口腔与面部表情的不恰当,录音是没法告诉你的。 第二:语音部分 事实上,很多中国人是无法完全区分60个声母、韵母成分的。因为听辨上无法区分,所以在吐字上,才会出现语音缺陷和语音错误,常见的语音问题如尖音、鼻边音问题、平翘舌问题、前后鼻音问题等等,90%以上都是因为“听不出来”。所以,最好需要一个能听出来的耳朵,帮你找到正确的发声位置。 第三:语言表达 很多人说到语言表达,都会反问:不就是说话么?没错,看似简单,但是语言表达的问题其实是最明显的。吐字发声稍微欠

相关文档
最新文档