函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。
1. JavaScript 函数语法 函数就是包裹在花括号中的代码块,前面使用了关键词 function:
function functionname() { 这里是要执行的代码 }当调用该函数时,会执行函数内的代码。可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript 在任何位置进行调用。
myFunction(argument1,argument2)当您声明函数时,请把参数作为变量来声明:
function myFunction(var1,var2) { 这里是要执行的代码 }
<button onclick="myFunction('Bill Gates','CEO')">点击这里</button> <script> function myFunction(name,job) { alert("Welcome " + name + ", the " + job); } </script>3. 带有返回值的函数 有时,我们会希望函数将值返回调用它的地方。通过使用 return 语句就可以实现。在使用 return 语句时,函数会停止执行,并返回指定的值:
function myFunction() { var x=5; return x; }整个 JavaScript 并不会停止执行,仅仅是函数。JavaScript 将继续执行代码,从调用函数的地方。函数调用将被返回值取代:
var myVar=myFunction();在您仅仅希望退出函数时 ,也可使用 return 语句。返回值是可选的:
function myFunction(a,b) { if (a>b) { return; } x=a+b }如果 a 大于 b,则上面的代码将退出函数,并不会计算 a 和 b 的总和。
4. 局部 JavaScript 变量 在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。
5. 全局 JavaScript 变量 在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。
6. JavaScript 变量的生存期 JavaScript 变量的生命期从它们被声明的时间开始。局部变量会在函数运行以后被删除。全局变量会在页面关闭后被删除。
7. 向未声明的 JavaScript 变量来分配值 如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。下面这条语句:
carname="Volvo";将声明一个 全局变量 carname,即使它在函数内执行。
9. For/In 循环 JavaScript for/in 语句循环遍历对象的属性:
var person={fname:"John",lname:"Doe",age:25}; for (x in person) { txt=txt + person[x]; }10. JavaScript 抛出错误 当错误发生时,当事情出问题时,JavaScript 引擎通常会停止,并生成一个错误消息。描述这种情况的技术术语是:JavaScript 将抛出一个错误。JavaScript 测试和捕捉:try 语句允许我们定义在执行时进行错误测试的代码块。catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。JavaScript 语句 try 和 catch 是成对出现的。
try { //在这里运行代码 } catch(err) { //在这里处理错误 }在下面的例子中,我们故意在 try 块的代码中写了一个错字。catch 块会捕捉到 try 块中的错误,并执行代码来处理它
<!DOCTYPE html> <html> <head> <script> var txt=""; function message() { try { adddlert("Welcome guest!"); } catch(err) { txt="There was an error on this page.\n\n"; txt+="Error description: " + err.message + "\n\n"; txt+="Click OK to continue.\n\n"; alert(txt); } } </script> </head> <body> <input type="button" value="View message" onclick="message()"> </body> </html>11. Throw 语句 throw 语句允许我们创建自定义错误。正确的技术术语是:创建或抛出异常(exception)。
throw exception
<script> function myFunction() { try { var x=document.getElementById("demo").value; if(x=="") throw "empty"; if(isNaN(x)) throw "not a number"; if(x>10) throw "too high"; if(x<5) throw "too low"; } catch(err) { var y=document.getElementById("mess"); y.innerHTML="Error: " + err + "."; } } </script> <h1>My First JavaScript</h1> <p>Please input a number between 5 and 10:</p> <input id="demo" type="text"> <button type="button" onclick="myFunction()">Test Input</button> <p id="mess"></p>请注意,如果 getElementById 函数出错,上面的例子也会抛出一个错误。