zoukankan      html  css  js  c++  java
  • javascript笔记整理(函数)

    javascript函数的声明和调用
    将完成某一特定功能的代码集合起来,可以重复使用的代码块。

    一、函数的声明方式(创建)

    A.基本语法(function  关键字)
    function 函数名([参数1],[参数2]....){
        函数体
        [retrun]  //返回值
    }

    function a(){
        alert(1)
    };
    

    B.字面量定义的形式(匿名函数)
    var 变量=function ([参数1],[参数2]....){
        函数体
        [retrun]  //返回值
    }

    var a=function(){
        alert(1);
    }
    

    C.以对象的形式来声明(不推荐使用)
    new 关键字。
    var 变量=new Function([参数1],[参数2]...,"函数体");

    var a=new Function(alert(1));
    

     二、函数的调用方式

    A.函数名() 、变量名();

    function a(){
        alert(1)
    };	
    a();
    
    var a=function(){
        alert(1);
    }	
    a();
    

    B.直接调用执行;

    (function  () {
        alert(1);
    })();		
    //结果	1
    

     三、两种声明方式的区别

    基本语法

    function a(){
        alert(1)
    };
    //会先预编译
    

     1.如果两个函数的命名相同,后面的将会覆盖前面的函数

    function a(){alert(1)};
    function a(){alert(2)};
    a();
    //结果	2
    
    function a(){alert(1)};
    var a=function(){alert(2)};
    a();
    //结果	2
    
    var a=function(){alert(2)};
    function a(){alert(1)};
    a();
    //结果	2
    

    2.以基本语法声明的函数,会在代码运行的时候,提前加载到内存当中,以供以后使用,但是以字面量形式命名的函数,会在执行到的时候,才进行赋值

    function a(){alert(1)};
    a();
    //结果	1
    
    a();
    function a(){alert(1)};
    //结果	1
    
    a();
    var a=function (){alert(1)};
    //结果	报错
    

     3.在不同的<script></script>块中的函数,使用和调用的时候,应该先定义,后执行。

    <script>
    a();
    </script>
    
    <script>
    var a=function (){alert(1)};
    </script>
    
    //结果 报错
    

    javascript函数的参数和return语句

    //金字塔

    function a(num){ for(var i=1;i<=num;i++){ for(var b=1;b<=num-i;b++){ document.write('='); } for(var b=1;b<=i*2-1;b++){ document.write('8'); } for(var b=1;b<=num-i;b++){ document.write('='); } document.write('<br>'); } }; a(9);

     效果:

    一、参数(可以动态的改变函数体内对应的变量的类型或值,使同一函数体得到不同的结果)

    形参:在定义函数的时候,函数括号中定义的变量叫做形参:function a(形参){}

    实参:调用函数的时候,在括号中传入的变量或值叫做实参:a(实参)

    1.参数的类型(可以是任何的数据类型)

    2.参数的个数(最多是25)

      a.实参和形参数量相等,一一对应。

      b.形参的数量多于实参,不会报错,但是多出的参数他的值,会自动赋值为undefined

    function a(a,b){
        alert(a);
        alert(b)
    };
    a(1);
    结果:1-------------undefined
    

       c.实参的数量多于形参。不会报错,但是要得到多出的实参的值,要用arguments对象

    function a(a){
        alert(a)
    };
    a(1,2);
    //结果:1
    

     二、arguments对象(每创建一个函数,该函数就会隐式创建一个arguments对象,他包含有实际传入参数的信息)

    1.length(检测实际传入参数的个数)

    function a(a){
        alert(arguments.length);
    };
    a(1,2);
    //结果    2
    

    2.callee(对本身的调用)

    function a(a){
        alert(arguments.callee);
    };
    a(1,2);
    //结果	function a(a){alert(arguments.callee)}
    

    3.访问传入参数的具体的值([下标])

    function a(a){
        alert(arguments[2]);
    };
    a(1,2,3);
    //结果	3
    

     三、函数重载(同一个函数因为参数的类型或数量不同,可以对应多个函数的实现,每种实现对应一个函数体)

    function a(){
        for(i=0;i<arguments.length;i++){
            alert(arguments[i]);
        } 
    };
    a(1,2,3);
    //结果依次弹出 1、2、3    
    
  • 相关阅读:
    LeetCode "Median of Two Sorted Arrays"
    LeetCode "Distinct Subsequences"
    LeetCode "Permutation Sequence"

    LeetCode "Linked List Cycle II"
    LeetCode "Best Time to Buy and Sell Stock III"
    LeetCode "4Sum"
    LeetCode "3Sum closest"
    LeetCode "3Sum"
    LeetCode "Container With Most Water"
  • 原文地址:https://www.cnblogs.com/chenrf/p/4930835.html
Copyright © 2011-2022 走看看