JavaScript技术应用
1、JavaScript语句和函数
1条件
if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码
if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码
if...else if....else 语句 - 使用该语句来选择多个代码块之一来执行
switch 语句 - 使用该语句来选择多个代码块之一来执行
2循环
while的语法为
while (exp) {
//statements;
}
1 2 3 4 5 6 7 8 9 10 11 12 | var a=1,b=0; while(a<=1000){ if(a%2==0){ if(b%20==0) { document.write("<br>第"+parseInt(b/20+1)+"行偶数"); } document.write(a+" "+" "); b++; } a++; } |
其中,exp为一条件判断语句,最终的结果都可以用一个布尔值表示,若其结果为true则进行下面{}里的语句,然后继续判断exp,直到exp的结果为false为止,若exp的结果为false,则跳过这条循环语句,执行接下来的代码。需要注意的是在{}里的语句必须存在对exp的结果产生影响的代码,否则循环会一直重复下去,形成死循环。
do……while语句与while语句大体上相同,唯一的不同之处是do……while语句会先执行语句,然后对条件进行判断。其语法为
do {
//statements;
}while (condition);
同样是上面的例子,其结果变为
1 2 3 4 5 6 7 8 9 10 11 12 | var a=1,b=0; do{ if(a%2==0){ if(b%20==0) { document.write("<br>第"+parseInt(b/20+1)+"行偶数"); } document.write("<u>"+a+"</u>"+" "+" "); b++; } a++; }while(a<=1000) |
相较于上面的两种循环,for循环显得更为地简洁有效。
for (变量=开始值;变量<=结束值;变量=变量+步进值) {
需执行的代码
}
()里的三条语句中,第二条为判断语句,只有其结果为真时循环才会执行。
1 2 3 4 5 6 7 8 9 | for(var a=1,b=0;a<=100;a++){ if(a%2==0){ if(b%20==0) { document.write("<br>第"+parseInt(b/20+1)+"行偶数"); } document.write("<u>"+a+"</u>"+" "+" "); } } |
在循环中,有时候我们急需跳出整个循环或某一次的循环语句不进行执行,这时我们需要用到break语句和continue语句。这两个语句都存在于循环语句中,前者终止整个循环,后者阻止某次循环的执行
3函数
//求和函数
function sum(a,b){
return a+b;
}
这是最典型的函数声明,以关键字function开始,其后跟随函数名称标识符、一对圆括号(包含由0个或多个逗号隔开的参数名称)和一对花括号(包含0条或多条JS语句,构成函数体)。这种函数定义方式需要显式的指定函数名称,在代码执行前就被解释器加载到作用域中,这个特性可以让我们在函数定义之前就调用该函数。我们可以通过代码来验证这一点。
2、JavaScript对象
1数组
数组是指的数据的有序列表。
数组中每个值称之为数组的一个元素。
数组中的每个元素都有一个位置,这个位置称之为索引(下标、index)。数组的索引是从 0 开始的
同一个数组中,元素的类型不做任何限制。也就是说,同一个数组中可以方法Number、String、Boolean、Object对象等等。可以同时放入任何的类型。甚至数组中的元素可以是另外一个数组(构成多维数组)。
数组的特点
虽然每种语言都有数组这种数据结构,但是JavaScript的数组相比他们有很大不同。
数组长度可以动态改变。
同一个数组中可以存储不同的数据类型。
数据的有序集合
每个数组都有一个length属性,表示的是数组中元素的个数
创建数组
构造函数在创建对象的时候使用。数组的构造函数式 Array()
例如: new Array(数组长度);
//创建一个长度为 0 的空数组
var colors = new Array();
//创建一个长度为 5 的数组。每个数组的元素的默认值是 undefined。
var colors = new Array(5);
//创建一个长度为 3 的数组,并且3个元素分别是 "blue" "red""green"
var colors = new Array("blue","red", "green");
使用构造函数创建数组对象的时候,最后一个元素后面不要添加括号,否则报错。这样是错误的:new Array("a", )
使用构造函数如果只传入了一个Number值,则这个值必须 >= 0, 否则会报错。
使用构造函数创建数组对象的时候,new 关键字是可以省略的。 例如:Array(5) 这样是可以的。
每个数组都有一个叫 length的属性,表示数组的长度(即:元素的个数)。
var arr = [10, 20, 60, 5, 7];
alert(arr.length); //弹出:5
数组的遍历
一般有3种方法遍历数组:
for循环
for… in
for each ( ES5 新增)
数组常用方法
toString()转换方法:
返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串
join() 方法:
toString() 方法只能使用逗号连接,而 join() 方法可以使用指定的连接符连接
向队列头部添加元素(unshift)、从队列头部移除元素(shift)
对数组元素进行倒置。
arr.reverse();
倒置操作是对原数组本身做了操作,返回的也是原数组对象,并不是一个新创建的数组。
indexOf(item): 从前面开始向后查找 item 第一次出现的位置
lastIndexOf(item): 从尾部开始向前查找 item 第一次出现的位置
如果找不到元素,则返回 -1
2正则表达式
正则表达式的常用方法:
regexp.test(string)
用来测试一个字符串是否能够被匹配。它返回ture或false两个值。
regexp.exec(string)
在指定的字符串中执行搜寻一个匹配,匹配的结果是通过一个数组返回
一些常用的正则表达式示例:
1、匹配所有的正数:^[0-9]+$
2、匹配所有的小数:^\-?[0-9]*\.?[0-9]*$
3、匹配所有的整数:^\-?[0-9]+$
4、提取信息中的中文字符串:[\u4e00-\u9fa5]* ;
5、提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
6、提取信息中的中国手机号码:(86)*0*13\d{9}
7、提取信息中的中国固定电话号码:(\d3,4\d3,4|\d{3,4}-|\s)?\d{8}
8、提取信息中的中国邮政编码:[1-9]{1}(\d+){5}
9、提取信息中的中国身份证号码:\d{18}|\d{15}
10、提取信息中的任何数字:(-?\d*)(\.\d+)?
3、文档对象模型
1Window对象
Window 对象属性
属性 | 描述 |
返回窗口是否已被关闭。 | |
设置或返回窗口状态栏中的默认文本。 | |
对 Document 对象的只读引用。请参阅 Document 对象。 | |
对 History 对象的只读引用。请参数 History 对象。 | |
返回窗口的文档显示区的高度。 | |
返回窗口的文档显示区的宽度。 | |
length | 设置或返回窗口中的框架数量。 |
用于窗口或框架的 Location 对象。请参阅 Location 对象。 | |
设置或返回窗口的名称。 | |
对 Navigator 对象的只读引用。请参数 Navigator 对象。 | |
返回对创建此窗口的窗口的引用。 | |
返回窗口的外部高度。 | |
返回窗口的外部宽度。 | |
pageXOffset | 设置或返回当前页面相对于窗口显示区左上角的 X 位置。 |
pageYOffset | 设置或返回当前页面相对于窗口显示区左上角的 Y 位置。 |
parent | 返回父窗口。 |
对 Screen 对象的只读引用。请参数 Screen 对象。 | |
返回对当前窗口的引用。等价于 Window 属性。 | |
设置窗口状态栏的文本。 | |
返回最顶层的先辈窗口。 | |
window | window 属性等价于 self 属性,它包含了对窗口自身的引用。 |
| 只读整数。声明了窗口的左上角在屏幕上的的 x 坐标和 y 坐标。IE、Safari 和 Opera 支持 screenLeft 和 screenTop,而 Firefox 和 Safari 支持 screenX 和 screenY。 |
Window 对象方法
方法 | 描述 |
显示带有一段消息和一个确认按钮的警告框。 | |
把键盘焦点从顶层窗口移开。 | |
取消由 setInterval() 设置的 timeout。 | |
取消由 setTimeout() 方法设置的 timeout。 | |
关闭浏览器窗口。 | |
显示带有一段消息以及确认按钮和取消按钮的对话框。 | |
创建一个 pop-up 窗口。 | |
把键盘焦点给予一个窗口。 | |
可相对窗口的当前坐标把它移动指定的像素。 | |
把窗口的左上角移动到一个指定的坐标。 | |
打开一个新的浏览器窗口或查找一个已命名的窗口。 | |
打印当前窗口的内容。 | |
显示可提示用户输入的对话框。 | |
按照指定的像素调整窗口的大小。 | |
把窗口的大小调整到指定的宽度和高度。 | |
按照指定的像素值来滚动内容。 | |
把内容滚动到指定的坐标。 | |
按照指定的周期(以毫秒计)来调用函数或计算表达式。 | |
在指定的毫秒数后调用函数或计算表达式。 |
2Document对象
document 对象的属性
document
对象主要有如下属性:
属性 | 说明 |
document.title | 设置文档标题等价于HTML的<title>标签 |
document.bgColor | 设置页面背景色 |
document.linkColor | 未点击过的链接颜色 |
document.alinkColor | 激活链接(焦点在此链接上)的颜色 |
document.fgColor | 设置前景色(文本颜色) |
document.vlinkColor | 已点击过的链接颜色 |
document.URL | 设置URL属性从而在同一窗口打开另一网页 |
document.fileCreatedDate | 文件建立日期,只读属性 |
document.fileModifiedDate | 文件修改日期,只读属性 |
document.fileSize | 文件大小,只读属性 |
document.cookie | 设置和读出cookie |
document.charset | 设置字符集 简体中文:gb2312 |
对象方法:
方法 | 说明 |
document.write() | 动态向页面写入内容 |
document.createElement(Tag) | 创建一个html标签对象 |
document.getElementById(ID) | 获得指定ID值的对象 |
document.getElementsByTagName(tagname) | 获得指定标签名的对象 |
document.getElementsByName(Name) | 获得指定Name值的对象 |
document.getElementsByClassName(classname) | 获得指定类名的对象(html5 API) |
3Location对象
Location 对象属性
属性 | 描述 |
设置或返回从井号 (#) 开始的 URL(锚)。 | |
设置或返回主机名和当前 URL 的端口号。 | |
设置或返回当前 URL 的主机名。 | |
设置或返回完整的 URL。 | |
设置或返回当前 URL 的路径部分。 | |
设置或返回当前 URL 的端口号。 | |
设置或返回当前 URL 的协议。 | |
设置或返回从问号 (?) 开始的 URL(查询部分)。 |
Location 对象方法
属性 | 描述 |
加载新的文档。 | |
重新加载当前文档。 | |
用新的文档替换当前文档 |
4History对象
History 对象属性
属性 | 描述 |
返回浏览器历史列表中的 URL 数量。 |
History 对象方法
方法 | 描述 |
加载 history 列表中的前一个 URL。 | |
加载 history 列表中的下一个 URL。 | |
加载 history 列表中的某个具体页面。 |