zoukankan      html  css  js  c++  java
  • 【JavaScript函数】

     函数的定义 :

    【完成某一个功能的代码段】

      1、方便维护 

      2、重复利用

      3、执行代码段

      函数的一些要求:

      function 定义某一个函数 命名最好要有语义化,
      函数名称最好是驼峰,
      严格区分大小写,
      函数名重名会产生覆盖,
      函数可以有参数也可以没有参数,
      可写一个也可写多个,写几个传几个 ,
      函数通过return返回值,如果不返回则是undefined。

     自调用函数:

      函数表达式可以 "自调用"。

      自调用表达式会自动调用。

      如果表达式后面紧跟 () ,则会自动调用。

      不能自调用声明的函数。

      通过添加括号,来说明它是一个函数表达式:

    1 (function () {
    2     var x = "Hello!!";      // 我将调用自己
    3 })();

     回调函数:

      原理:

      我现在出发,到了通知你”
      这是一个异步的流程,“我出发”这个过程中(函数执行),“你”可以去做任何事,“到了”(函数执行完毕)“通知你”(回调)进行之后的流程

     1 <script type="text/javascript">
     2             //回调函数的例子
     3             function calc(x,y){
     4                 return x()+y();
     5             }
     6             function test1(){
     7                 return 3;
     8             }
     9             function test2(){
    10                 return 5;
    11             }            
    12 //            alert(calc(test1,test2));
    13             alert(calc(function(){return 5;},function(){return 10;}));    
    14         </script>

      实现默认参数和可变参数:

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="utf-8">
     5         <title></title>
     6     </head>
     7     <body>
     8     <script type="text/javascript">
     9     //实现默认参数的形式
    10     function calc(x,y){
    11         x=x||0;
    12         y=y||0;
    13         return x+y;
    14 }
    15     function calc(x,y){
    16         if(x===undefined){
    17             x=0;
    18         }
    19         y=y===undefined?0:y;
    20         return x+y;
    21     }
    22 //    alert(calc());  
    23 //    alert(calc(1,3));
    24     function calc(x,y){
    25         //return arguments;
    26         //alert(arguments[0]);
    27         //alert(arguments[1]);
    28         x=arguments[0]?arguments[0]:0;
    29         y=arguments[1]?arguments[1]:0;
    30         return x+y;
    31     }
    32 //    alert(calc());
    33 //    alert(calc(1,2));
    34 //可变参数形式的函数
    35     var sum=0;
    36     function test(){
    37         var paramsNum=arguments.length;//得到传入参数的个数
    38         for(var i=1;i<=paramsNum;++i){
    39             sum+=arguments[i];
    40             //sum = sum + arguments[i];
    41         }
    42         return sum;
    43         //document.write(sum);
    44     }
    45     //alert(test(1,2,3,4,5,6,123,344,43,3));
    46     function test1(){
    47         var paramsNum=arguments.length;
    48         var max=0;
    49         for(var i=0;i<=paramsNum-1;i++){
    50             if(arguments[i]>max){
    51                 max=arguments[i];
    52             }
    53         }
    54         return max;
    55     }
    56     alert(test1(123,445643,3432,23456));
    57     </script>
    58 </body>
    59 </html>

      全局函数:

     1     <script type="text/javascript">
     2         //全局函数的例子
     3         document.write('默认情况的结果<br/>');
     4         document.write(parseInt('32')+'<br/>');
     5         document.write(parseInt('032')+'<br/>');
     6         document.write(parseInt('0x32')+'<br/>');
     7         document.write(parseInt('true')+'<br/>');
     8         document.write(parseInt('3king')+'<br/>');
     9         document.write(parseInt(' 5abc ')+'<br/>');
    10         document.write(parseInt(' 88 99 00')+'<br/>');
    11         document.write('<hr color="red"/>');
    12         document.write('转换成二进制的结果<br/>');
    13         document.write(parseInt('32',2)+'<br/>');
    14         document.write(parseInt('032',2)+'<br/>');
    15         document.write(parseInt('0x32',2)+'<br/>');
    16         document.write('<hr/>');
    17         document.write('转换成八进制的结果<br/>');
    18         document.write(parseInt('32',8)+'<br/>');
    19         document.write(parseInt('032',8)+'<br/>');
    20         document.write(parseInt('0x32',8)+'<br/>');
    21         document.write('<hr/>');
    22         document.write('转换成八进制的结果<br/>');
    23         document.write(parseInt('32',16)+'<br/>');
    24         document.write(parseInt('032',16)+'<br/>');
    25         document.write(parseInt('0x32',16)+'<br/>');
    26         //二进制转换成其他进制
    27         document.write('<hr/>');
    28         document.write('二进制转换成其他进制的结果<br/>');
    29         document.write(parseInt('11001010',2)+'<br/>');
    30         document.write(parseInt('11001010',8)+'<br/>');
    31         document.write(parseInt('11001010',10)+'<br/>');
    32         document.write(parseInt('11001010',16)+'<br/>');
    33         document.write(parseInt('202',2)+'<br/>');
    34         
    35         //转换成浮点型
    36         document.write('<hr/>');
    37         document.write(parseFloat('2.6')+'<br/>');
    38         document.write(parseFloat('323')+'<br/>');
    39         document.write(parseFloat('2e2')+'<br/>');
    40         document.write(parseFloat('123abc')+'<br/>');
    41         document.write(parseFloat(' 2.6 ')+'<br/>');
    42         document.write(parseFloat('a2.6')+'<br/>');
    43         
    44         //通过isFinite()检测是否是无穷值
    45         var x=123;
    46         x=Infinity;
    47         x=-Infinity;
    48         x=0/0;
    49         x=0;
    50         x=false;
    51 //        alert(isFinite(x));
    52         x=NaN;
    53         x=123;
    54         x=false;
    55         x=parseInt('king3');
    56         alert(isNaN(x));
    57     </script>

     全局变量和局部变量的区别:

            <script type="text/javascript">
                //全局变量和局部变量的区别
    //            function test(){
    //                var x=1;
    //                alert(x);
    //            }
    //            test();
    //            alert(x);
    //            function test1(){
    //                y=5;
    //                alert(y);
    //            }
                //test1();
                //alert(y);
            var x=1,y=2;
            function calc(x,y){    
                document.write('a的值为'+a+'<br/>');//undefined
                document.write('函数体内x的值为:'+x+'<br/>');//1
                document.write('函数体内y的值为:'+y+'<br/>');//2
                var x=0,y=6;
                z=x+y;
                x=x+y;
                var a=198;
                document.write('a的值为:'+a+'<br/>');//198
                document.write('x的值为:'+x+'<br/>');//6
                return z;
            }
    //        alert(calc(1,2));//6
    //        alert(x+'-'+y+'-'+z);//12u    126
            //var a=1,b=2;
            function test1(){
                var a=5,b=10;
                return a+b;
    
            }
            function test2(){
                var a=11,b=22;
                return a+b;
            }
            alert(test1()+test2());
            /*alert(test2());
            alert(a+'--'+b);*/
                
            </script>

     函数这块总结可能不够细致,如果有更好的希望一起交流哦~~~~~

  • 相关阅读:
    129 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 03 饿汉模式 VS 懒汉模式 02 懒汉式的代码实现
    128 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 03 饿汉模式 VS 懒汉模式 01 饿汉式的代码实现
    127 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 02 单例模式概述 01 单例模式的定义和作用
    126 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 01 设计模式概述 01 设计模式简介
    125 01 Android 零基础入门 02 Java面向对象 05 Java继承(下)05 Java继承(下)总结 01 Java继承(下)知识点总结
    leetcode-----121. 买卖股票的最佳时机
    leetcode-----104. 二叉树的最大深度
    Json串的字段如果和类中字段不一致,如何映射、转换?
    Mybatis-Plus的Service方法使用 之 泛型方法default <V> List<V> listObjs(Function<? super Object, V> mapper)
    模糊查询
  • 原文地址:https://www.cnblogs.com/zxnn/p/8218209.html
Copyright © 2011-2022 走看看