这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
整理 Javascript 函数学习笔记,之前一系列的文章是跟我学习 Javascript,本文就是进一步学习 Javascript 函数,希望大家继续关注
1、什么是函数 如果需要多次使用同一段代码,可以把它们封装成一个函数。函数(function)就是一组允许在你的代码里随时调用的语句。每个函数实际上是一个短小的脚本。 如: 要完成多组数和的功能。
- var sum;
- sum = 3+2;
- alear(sum);
- sum = 7+8;
- alear(sum);
- ......//不停的重复两行代码
如果要实现 8 组数的和,就需要 16 行代码,实现的越多,代码行也就越多。所以我们可以把完成特定功能的代码块放到一个函数里,直接调用这个函数,就省去重复输入大量代码的麻烦。使用函数完成:
- function add(a,b){
- sum = a+b;//只需要写一次就可以
- };
- add2(3,2);
- add2(7,8);
- ......//只需要调用函数就可以
2、定义函数 定义函数语法
- function 函数名(参数argument){
- 函数体statements;
- }
- //function定义函数的关键字,"函数名"你为函数取的名字,"函数体"替换为完成特定功能的代码。
- function shout(){
- var beatles = Array("John","Paul","George","Ringo");
- for (var count = 0; count < beatles.length; count++){
- alert(beatles[count]);
- }
- }
- //这个函数里面的循环语句将依次弹出对话框来显示beatles里面内容。
- shout();调用函数,执行脚本里的动作
完成对两个数求和并显示结果的功能:
- <script type="text/javascript">
- function add2(){
- sum = 3+2;
- alert()sum;
- }
- add2();
- </script>
3、函数调用 函数定义好后,是不能自动执行的,需要调用它, 直接在需要的位置写函数名。 第一种情况: 在
- <script type="text/javascript">
- function add(){
- sum = 1+1;
- alert(sum);
- }
- add();//调用函数,直接写函数名。
- </script>
第二种情况: 在 html 文件中调用,如通过点击按钮后调用定义好的函数。
- <html>
- <head>
- <script type="text/javascript">
- function add2() {
- sum = 5 + 6;
- alert(sum);
- }
- </script>
- </head>
- <body>
- <form>
- <input type="button" value="click it" onclick="add2()">
- //按钮,onclick点击事件,直接写函数名
- </form>
- </body>
- </html>
4、有参数的函数 其实,定义函数还可以如下格式: function 函数名 (参数 1,参数 2){函数代码} 在定义函数时,你可以为它声明任意多个参数,只要用逗号把它们分隔开来就行。在函数内部,你可以像使用普通变量那样使用它的任何一个参数。 按照这个格式,函数实现任意两个数的和应该写成:
- function add2(x,y){
- sum = x + y;
- document.write(sum);
- }
- //x和y则是函数的两个参数,调用函数的时候,我们可通过这两个参数把两个实际的加数传递给函数了。
实现如下功能: 定义函数实现三个数的和,函数名为 add3。 计算 5、8、3/7、1、4 两组三个数的和。
- <script type="text/JavaScript">
- function add3(x,y,z) {
- sum = x + y +z;
- document.write(x+"、"+y+"、"+z+"和:"+sum+"<br/>");
- }
- add3(5,8,3);
- add3(7,1,4);
- </script>
5、返回值的函数 函数不仅能够 (以参数的形式) 接收数据,还能够返回数据。我们完全可以创建一个函数并让它返回一个值、一个字符串、一个数组或是一个布尔值。这是需要用到 return 语句。
- function multiply(num1,num2){
- var total = num1*num2;
- return total;
- }
之前通过 "document.write" 把结果输出来,现在使用函数输出 我们只要把 "document.write(sum)" 这行改成如下代码:
- function add2(x,y){
- sum = x + y;
- return sum; //返回函数值,return后面的值叫做返回值。
- }
- //还可以通过变量存储调用函数的返回值:
- result = add2(3,4);//语句执行后,result变量中的值为7。
例:下面这个函数只有一个参数(一个华氏温度值),它将返回一个数值(同一温度的摄氏温度值):
- <script type="text/javascript">
- function convertToCelsius (temp) {
- var result = temp - 32;
- result = result / 1.8;
- return result;
- }
- //函数的真正价值体现在,我们还可以把它们当做一种数据类型来使用,这意味着可以把一个函数的调用结果赋给一个变量:
- var temp_fahrenheit = 95;
- var temp_celsius = convertToCelsius(temp_fahrenheit);
- alert(temp_celsius);
- </script>
在这个例子里,变量 temp_celsius 的值将是 35,这个数值由 convertToCelsius 函数返回。 在命名变量时,我用下划线来分隔各个单词;在命名函数时,我从第二个单词开始把每个单词的第一个字母写成大写形式(也就是驼峰命名法)。 1)、变量的作用域 变量既可以是全局的,也可以是局部的。 全局变量(global variable)可以在脚本中的任何位置被引用。一旦你在某个脚本里声明了一个全局变量,就可以从这个脚本中的任何位置 ------ 包括函数内部 ------ 引用它。全局变量的作用域是整个脚本。 局部变量(local variable)只存在于声明它的那个函数的内部,在那个函数的外部是无法引用它的。局部变量的作用域仅限于某个特定的函数。 可以用 var 关键字明确地为函数变量设定作用域。 如果在某个函数中使用了 var,那个变量就将被视为一个局部变量,它只存在于这个函数的上下文中;反之,如果没有使用 var,那个变量就将被视为一个全局变量,如果脚本里已经存在一个与之同名的全局变量,这个函数就会改变那个全局变量值。 例子:
- function square(num){
- total = num*num;
- return total;
- }
- var total = 50;
- var number = square(20);
- alert(total);
这是错误的,number 的值为 400,但是这里 alert 弹出的是 total 的值,应该是 50.
这些代码将不可避免地导致全局变量 total 的值发生变化。
全局变量 total 的值变成了 400. 我的本意是让 square() 函数只把它计算出来的平方值返回给变量 number,但因为未把这个函数内部 total 变量明确地声明为局部变量,这个函数把名字同样是 total 的那个全局变量的值也改变了。
把这个函数写成如下的样子才是正确的:
- function square(num){
- var total = num*num;
- return total;
- }
- var total = 50;
- var number = square(20);
- alert(total);
- </script>
正确结果:
来源: http://www.phperz.com/article/17/0421/268375.html