JavaScript 函数
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。
JavaScript 函数语法
函数就是包裹在花括号中的代码块,前面使用了关键词 function:
当调用该函数时,会执行函数内的代码。可以在某事件发生时直接调用函数,并且可在任何位置进行调用。
function functionname(){这里是要执行的代码}
调用带参数的函数
在调用函数时,您可以向其传递值,这些值被称为参数。这些参数可以在函数中使用。由逗号 (,) 分隔。
function myFunction(argument1,argument2){这里是要执行的代码}
带有返回值的函数
有时,我们会希望函数将值返回调用它的地方。通过使用return语句就可以实现。
在使用return语句时,函数会停止执行,并返回指定的值。
局部 JavaScript 变量
在JavaScript函数内部声明的变量(使用var)是局部变量,只能在函数内部访问它。(该变量的作用域是局部的)。
只要函数运行完毕,本地变量就会被删除。
全局 JavaScript 变量
在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。
JavaScript 变量的生存期
JavaScript 变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。全局变量会在页面关闭后被删除。
向未声明的 JavaScript 变量来分配值
如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。
carname="Volvo"; [将声明一个全局变量 carname,即使它在函数内执行。]
************************************
JavaScript 对大小写敏感。关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数。
变量和参数必须以一致的顺序出现。第一个变量就是第一个被传递的参数的给定的值,以此类推。
函数很灵活,您可以使用不同的参数来调用该函数,这样就会给出不同的消息:
<script> function myFunction(name,job) { alert("Welcome " + name + ", the " + job); } </script> <button onclick="myFunction(‘Harry Potter‘,‘Wizard‘)">点击这里</button> <button onclick="myFunction(‘Bob‘,‘Builder‘)">点击这里</button>
根据您点击的不同的按钮,上面的例子会提示"Welcome Harry Potter, the Wizard"或"Welcome Bob, the Builder"。
在return语句之后,整个JavaScript并不会停止执行,仅仅是函数。JavaScript将继续执行代码,从调用函数的地方。
在您仅仅希望退出函数时 ,也可使用 return 语句,返回值是可选的。
您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。
************************************
JavaScript 运算符
运算符 = 用于赋值。
运算符 + 用于加值。
JavaScript 算术运算符
算术运算符用于执行变量与/或值之间的算术运算。
JavaScript 赋值运算符
赋值运算符用于给 JavaScript 变量赋值。
用于字符串的 + 运算符
+ 运算符用于把文本值或字符串变量加起来(连接起来)。
对字符串和数字进行加法运算
如果把数字与字符串相加,结果将成为字符串。
************************************
给定 y=5,下面的表格解释了这些算术运算符:
运算符 描述 例子 结果
+ 加 x=y+2 x=7
- 减 x=y-2 x=3
* 乘 x=y*2 x=10
/ 除 x=y/2 x=2.5
% 求余数 (保留整数) x=y%2 x=1
++ 累加 x=++y x=6
-- 递减 x=--y x=4
给定 x=10 和 y=5,下面的表格解释了赋值运算符:
运算符 例子 等价于 结果
= x=y x=5
+= x+=y x=x+y x=15
-= x-=y x=x-y x=5
*= x*=y x=x*y x=50
/= x/=y x=x/y x=2
%= x%=y x=x%y x=0
txt1="What a very";
txt2="nice day";
txt3=txt1+txt2;
在以上语句执行后,变量 txt3 包含的值是 "What a verynice day"。
************************************
JavaScript 比较和逻辑运算符
比较和逻辑运算符用于测试 true 或 false。
比较运算符
比较运算符在逻辑语句中使用,以测定变量或值是否相等。
可以在条件语句中使用比较运算符对值进行比较,然后根据结果来采取行动。
[if (age<18) document.write("Too young");]
逻辑运算符
逻辑运算符用于测定变量或值之间的逻辑。
条件运算符
JavaScript 还包含了基于某些条件对变量进行赋值的条件运算符。
************************************
给定 x=5,下面的表格解释了比较运算符:
运算符 描述 例子
== 等于 x==8 为 false
=== 全等(值和类型) x===5 为 true;x==="5" 为 false
!= 不等于 x!=8 为 true
> 大于 x>8 为 false
< 小于 x<8 为 true
>= 大于或等于 x>=8 为 false
<= 小于或等于 x<=8 为 true
给定 x=6 以及 y=3,下表解释了逻辑运算符:
运算符 描述 例子
&& and (x < 10 && y > 1) 为 true
|| or (x==5 || y==5) 为 false
! not !(x==y) 为 true
条件运算符
greeting=(visitor=="PRES")?"Dear President ":"Dear ";
如果变量 visitor 中的值是 "PRES",则向变量 greeting 赋值 "Dear President ",否则赋值 "Dear"。
************************************
JavaScript If...Else 语句
条件语句用于基于不同的条件来执行不同的动作。
条件语句
通常在写代码时,您总是需要为不同的决定来执行不同的动作。您可以在代码中使用条件语句来完成该任务。
在 JavaScript 中,我们可使用以下条件语句:
1.if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码
2.if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码
3.if...else if....else 语句 - 使用该语句来选择多个代码块之一来执行
4.switch 语句 - 使用该语句来选择多个代码块之一来执行
If 语句
只有当指定条件为 true 时,该语句才会执行代码。
If...else 语句
请使用 if....else 语句在条件为 true 时执行if代码,在条件为 false 时执行else代码。
If...else if...else 语句
使用 if....else if...else 语句来选择多个代码块之一来执行。
************************************
请使用小写的 if。使用大写字母(IF)会生成 JavaScript 错误!
if (条件){当条件为 true 时执行的代码}
else{当条件不为 true 时执行的代码}
if (条件 1){当条件 1 为 true 时执行的代码}
else if (条件 2){当条件 2 为 true 时执行的代码}
else{当条件 1 和 条件 2 都不为 true 时执行的代码}
************************************
JavaScript Switch 语句
switch 语句用于基于不同的条件来执行不同的动作。使用 switch 语句来选择要执行的多个代码块之一。
default 关键词
使用 default 关键词来规定匹配不存在时做的事情
************************************
switch(n)
{case 1:执行代码块 1;break;
case 2:执行代码块 2;break;
default:n 与 case 1 和 case 2 不同时执行的代码}
工作原理:首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。
如果代码块之后没有break的话,他就会一直执行到最后,后面所有的case都会被执行。
************************************
JavaScript For 循环
循环可以将代码块执行指定的次数。
JavaScript 循环
如果您希望一遍又一遍地运行相同的代码,并且每次的值都不同,那么使用循环是很方便的。
不同类型的循环
JavaScript 支持不同类型的循环:
1.for - 循环代码块一定的次数
2.for/in - 循环遍历对象的属性
3.while - 当指定的条件为 true 时循环指定的代码块
4.do/while - 同样当指定的条件为 true 时循环指定的代码块
For 循环
for 循环是您在希望创建循环时常会用到的工具。
for (语句 1; 语句 2; 语句 3)
{被执行的代码块}
[语句 1 在循环(代码块)开始前执行;语句 2 定义运行循环(代码块)的条件;语句 3 在循环(代码块)已被执行之后执行]
语句 1
通常我们会使用语句 1 初始化循环中所用的变量 (var i=0)。语句 1 是可选的,也就是说不使用语句 1 也可以。
语句 2
通常语句 2 用于评估初始变量的条件。如果语句 2 返回 true,则循环再次开始,如果返回 false,则循环将结束。
语句 3
通常语句 3 会增加初始变量的值。语句 3 也是可选的。
For/In 循环
JavaScript for/in 语句循环遍历对象的属性
************************************
您可以在语句 1 中初始化任意(或者多个)值。同时您还可以省略语句 1(比如在循环开始前已经设置了值时)。
省略了语句 2,那么必须在循环内提供 break。否则循环就无法停下来。这样有可能令浏览器崩溃。
语句 3 有多种用法。增量可以是任意的。语句 3 也可以省略(比如当循环内部有相应的代码时)。
var person={fname:"John",lname:"Doe",age:25};
for (x in person)
{txt=txt + person[x];}
会输出:BillGates56
************************************
JavaScript While 循环
只要指定条件为 true,循环就可以一直执行代码。
while 循环
While 循环会在指定条件为真时循环执行代码块。
do/while 循环
do/while 循环是 while 循环的变体。该循环会执行一次代码块,在检查条件是否为真之前,然后如果条件为真的话,就会重复这个循环。
该循环至少会执行一次,即使条件是 false,隐藏代码块会在条件被测试前执行。
************************************
如果您忘记增加条件中所用变量的值,该循环永远不会结束。该可能导致浏览器崩溃。
************************************
JavaScript Break 和 Continue 语句
break 语句用于跳出循环。continue 用于跳过循环中的一个迭代。
Break 语句
break 语句可用于跳出循环。break 语句跳出循环后,会继续执行该循环之后的代码(如果有的话)
Continue 语句
continue 语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代。
JavaScript 标签
正如您在 switch 语句那一章中看到的,可以对 JavaScript 语句进行标记。
如需标记 JavaScript 语句,请在语句之前加上冒号:label: 语句
************************************
break 和 continue 语句仅仅是能够跳出代码块的语句。
continue 语句(带有或不带标签引用)只能用在循环中。
break 语句(不带标签引用),只能用在循环或 switch 中。
通过标签引用,break 语句可用于跳出任何 JavaScript 代码块:
************************************
JavaScript 错误 - Throw、Try 和 Catch
try 语句测试代码块的错误。catch 语句处理错误。throw 语句创建自定义错误。
错误一定会发生
当 JavaScript 引擎执行 JavaScript 代码时,会发生各种错误:
1.可能是语法错误,通常是程序员造成的编码错误或错别字。
2.可能是拼写错误或语言中缺少的功能(可能由于浏览器差异)。
3.可能是由于来自服务器或用户的错误输出而导致的错误。
4.可能是由于许多其他不可预知的因素。
JavaScript 抛出错误
当错误发生时,当事情出问题时,JavaScript引擎通常会停止,并生成一个错误消息-----JavaScript 将抛出一个错误。
JavaScript 测试和捕捉
try 语句允许我们定义在执行时进行错误测试的代码块。catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。
JavaScript 语句 try 和 catch 是成对出现的。
Throw 语句
throw 语句允许我们创建自定义错误。正确的技术术语是:创建或抛出异常(exception)。
如果把 throw 与 try 和 catch 一起使用,那么您能够控制程序流,并生成自定义的错误消息。
************************************
异常可以是 JavaScript 字符串、数字、逻辑值或对象。
************************************
JavaScript 表单验证
JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证。
JavaScript 表单验证
JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证。
被 JavaScript 验证的这些典型的表单数据有:
1.用户是否已填写表单中的必填项目?
2.用户输入的邮件地址是否合法?
3.用户是否已输入合法的日期?
4.用户是否在数据域 (numeric field) 中输入了文本?
必填(或必选)项目
下面的函数用来检查用户是否已填写表单中的必填(或必选)项目。假如必填或必选项为空,那么警告框会弹出,并且函数的返回值为 false,否则函数的返回值则为 true(意味着数据没有问题):
function validate_required(field,alerttxt){ with (field){ if (value==null||value==""){ alert(alerttxt);return false }else {return true} } }
E-mail 验证
下面的函数检查输入的数据是否符合电子邮件地址的基本语法。
意思就是说,输入的数据必须包含@符号和点号(.)。同时,@不可以是邮件地址的首字符,并且@之后需有至少一个点号:
function validate_email(field,alerttxt) { with (field){ apos=value.indexOf("@") dotpos=value.lastIndexOf(".") if (apos<1||dotpos-apos<2) { alert(alerttxt); return false; }else {return true} } }
************************************
************************************