js函数

函数的一些要求:
function 定义某一个函数 命名最好要有语义化
例:test(); //直接调用函数名;
1 function test(){
2   alert('this is a test');
3 }    
函数名称最好是驼峰,函数名称严格区分大小写,
1 function TEST(){
2   alert('hello king');
3 }
4 TEST();   //弹出hello king
函数名重名会产生覆盖,哪个靠下执行哪个。就近原则。
1 test();
2 function test(){
3   alert('hello nana');
4 } //弹出hello nana
函数通过return返回值,如果不返回则是undefined。
1 function test2(){
2     return null;
3 }
4 test2(); //没有弹出框,错的 没结果;
5 alert(test2()); 或者 document.write(test2()); //弹出 null

函数可以有参数也可以没有参数,可写一个也可写多个,写几个传几个 ,一 一对应

 1 function calc(num1,num2){    //形参
 2     return num1+num2;
 3 }
 4 alert(12);  //弹出 3
 5 alert(window.calc(3,5)); //window权重最高,弹出8
 6 alert(calc(1,2,3,4,5)); //不管写几个,默认几个参数,结果执行几个
7 function calc(num1,num2){ 8 num1=num1 || 1//有一个为真执行 9 num2=num2 || 210 return num1+num2; 11 } 12 alert(calc()); //不传参,num1,num2为空, 转布尔类型为false 。 结果 3 13 alert(calc(3,6)); //弹出 9, 第一个为真,后面短路。
实现默认参数的形式
 1 function colc(x,y){
 2   x=x||0;
 3   y=y||0;
 4   return x+y;
 5 }
 6 alert(colc()); //弹出 0 x,y空=false,不执行,所以都等于0例2:function calc(x,y){
 7 if(x===undefined){
 8  x=0;
 9 }
10   y=y===undefined?0:y;
11   return x+y;
12 }
13 alert(calc()); //弹出0
14 alert(calc(1,3)); //弹出4
15 function calc(x,y){ 16   return auguments; //object Auguments 17   alert(arguents[0]); //undefidend 18   alert(arguments[1]); //undefidend 19   x=arguments[0]?arguments[0]:0; //第0个数组存在执行【0】,不存在弹 0 20   y=arguments[1]?arguments[1]:0; 21   return x+y; 22 } 23 alert(calc()); //弹出0 数组里面没东西,所以为0; 24 alert(1,2); //弹出3
可变参数形式的参数
 1 function test(){
 2   var paramsNum=arguments.length; //得到传入参数的个数
 3   var sum=0;
 4   for(var i=0; i<paramsNum; ++i){
 5   sum+=arguments[ i ];
 6   //sum=sum+arguments[ i ];
 7 }
 8   return sum;
 9 }
10 // arguments[1,2,3,4,5,6,123,344,43,3];
11 alert(test(1,2,3,4,5,6,123,344,43,3)); //弹出534 所有的和
12 function test(){ 13   var paramsNum=arguments.length; 14   var max=0; 15   for(var i=0; i<=paramsNum-1; i++){ 16   if(arguments[ i ]>max){ 17   max=arguments[ i ]; 18   } 19 } 20   return max; 21 } 22 alert(test1(123,3432,23456,445643)); //弹出 445643
变量的作用域 分为全局变量和局部变量。
 1 var x=1;  //全局变量
 2 function test(){
 3   ①document.write('函数体内的值为:'+x+‘<br/>’);                // 执行x=1  先读②,x被声明过,再返回读函数体外的全局变量
 5   ②x=19;                                                      //全局变量 加上var成局部变量,①读取不到执行undefined
 6   document.write('函数体内对x重新赋值,此时x的值为:'+x+'<br/>');  //执行x=19
 7 }
 8   document.write('函数体外x的值为:’+x+‘<br/>');                //执行全局x=1
 9 test();
10 document.write('x的值为:'+x+'<br/>');                          //执行全局x=1
全局变量和局部变量的区别
 1 function test(){
 2   var x=1;
 3   alert(x);
 4 }
 5 test();  //弹出 1
 6 alert(x);  //没声明没值,弹出undefined
 7 var x=1, y=2;
 8 function calc(x,y){
 9   document.write('a的值为'+a+’<br/>‘);            //无a 结果为undefined
10   document.write('函数体内x的值为:'+x+‘<br/>’);   // 先读4,看下面有无声明,再读全局执行1
12   document.write('函数体内y的值为:'+y+‘<br/>’);   // 同理楼上,执行2
13var x=0,y=6;
14   z=x+y;
15  ⑥x=x+y;
16   var a=198;
17   document.write('a的值为:‘+a+’<br/>');   //读最近,执行198
18   document.write('a的值为:‘+x+’<br/>');   //执行⑥ 弹出6
19   return z;
20 }
21 alert(calc(x,y));      // 弹出6
22 alert(x+'-'+y+'-'+z);  //弹出1-2-6 x,y读全局,z最后值是6
原文地址:https://www.cnblogs.com/wuli-cxr/p/8797086.html