JavaScript 函数
Posted CuriousZero
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript 函数相关的知识,希望对你有一定的参考价值。
一、javascript 函数 是由事件驱动的或者当它被调用时执行的可重复使用的代码块。
函数就是包裹在花括号中的代码块,前面使用了关键词 function:
function functionname() { 执行代码 }
当调用该函数时,会执行函数内的代码。
可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript 在任何位置进行调用。
(注意:JavaScript 对大小写敏感。关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数。)
二、局部JavaScript变量和全局JavaScript变量
在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。只要函数运行完毕,本地变量就会被删除。
而在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。
三、JavaScript 变量的生存期
JavaScript 变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。
全局变量会在页面关闭后被删除。
四、向未声明的 JavaScript 变量分配值
如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。
这条语句:carname="Volvo"; 将声明一个全局变量 carname,即使它在函数内执行。
【test】
1.对一个数字(n)执行阶乘操作,将得到1~n 的数字乘积,通常写做3!(1X2X3或者6)。编写一个JavaScript函数,使用递归的方法计算出指定数字的阶乘。
解:可能的解决方案之一:
function findFactorial(n){ if(n==0){ return 1; } return (n*findFactorial(n-1)); } var num=findFactorial(4); //将返回 24 alert(num);
2.函数如何才能修改其作用域之外的变量?编写一个函数,由1~5的数字组成的数组作为参数,调用该函数后将把其中的数字项替换成相应的字符串表示形式(也就是“one”,“two”等)
解:如果将一个对象(如一个数组)作为函数的参数传入,那么在函数中对这个数组的修改就会反映到函数外部。针对这个问题,其中一种解决方案是:
function makeArray(){ var arr =[1,5,3]; alert(arr); alertArray(arr); alert(arr); } function alertArray(arrOfNumbers){ for(var i=0;i<arrOfNumbers.length;i++){ switch (arrOfNumbers[i]){ case 1 :arrOfNumbers[i] = "one"; break; case 2:arrOfNumbers[i] = "two"; break; case 3 :arrOfNumbers[i] = "three"; break;http://i.cnblogs.com/EditPosts.aspx?opt=1 case 4:arrOfNumbers[i] = "four"; break; case 5:arrOfNumbers[i] = "five"; break; } } }
3.创建一个函数,它的参数是一个数据对象和一个函数,它将对这个数据对象调用该函数。http://i.cnblogs.com/EditPosts.aspx?opt=1
解:用一个匿名函数就能够满足需求:
function invokeFunction(dataObject,functionToCall){ functionToCall(dataObject); } var funcCall = new Function(\'x\',\'alert(x)\'); invokeFunction(\'hello\',funcCall);
以上是关于JavaScript 函数的主要内容,如果未能解决你的问题,请参考以下文章