zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    在VS Code中配置GO开发环境并调试
    go文件操作实践[读写zip tar xlsx文件]
    go 文件操作实践[读写json xlm gob txt]
    go inject 实践
    go的反射reflect
    go goroutine channel 和C# Task BlockingCollection 以及python该如何实现
    beego redis作为缓存
    beego Session redis存储以及是否阻塞
    Beego generate自动生成代码 以及注解路由 @router
    bee go用base64Captcha生成base64的验证码
  • 原文地址:https://www.cnblogs.com/wuli-cxr/p/8797086.html
Copyright © 2011-2022 走看看