JS中的函数

一、函数

1.函数的概念: 是事件驱动,调用执行的,可重复使用的代码块。
              在实际开发中如果出现大量重复性代码,就要考虑将这些代码封装成一个函数,
              在需要相同的功能时,只需要调用这个函数。
2.函数的使用方法:
    函数的使用包含两个步骤:
        1) 函数的定义:
            语法

                 function 函数名() {
                     函数体
                 }
                function: 关键字,后面一定要有空格。
            函数命名规则: 与标识符命名规则一样。
        2) 函数的调用: 函数自身不会主动执行需要调用才会执行,
                       函数只定义不调用没有任何意义。
            语法:
                  函数名();
        3) 函数的声明提前: 浏览器会默认把函数的声明部分提升到当前作用域的最前面。
                           (类似于变量的声明提前)
        4) 避免函数声明的时候函数名重复(因为,后声明的函数会把先声明的函数覆盖)。
3.函数表达式的方式定义函数:
        function() {
        }
    函数表达式(函数字面量)
    匿名函数: 没有名字的函数。
        var test = function() {
        }
        test();
    1) 函数表达式定义的函数,只能用接收的变量名在函数定义之后调用。
    2) 函数声明的优先级大于变量声明的优先级。

二、函数参数

    函数参数: 是函数内部跟函数外部沟通的桥梁。
    形参: 定义函数时的参数为形参
    实参: 调用函数时实际传递出去的参数为实参。
    is not defined:为声明是一个错误(既没有var声明也没有赋值)。
    undefin: 表示没有定义完成(变量只有var声明没有赋值)。
    注:多个参数要用","隔开。
        定义函数的时候不需要指定形参的类型。
        调用的时候实参的类型就是形参的类型。
        实参和形参是一一对应的
        形参只能在函数内使用

三、函数属性

    caller: 返回对现有函数的引用者/调用者
        使用语法: 函数名.caller(返回对现有函数的引用者);
        前提: 只有函数执行时才会有用
    callee: 返回当前函数自身的引用
        使用语法: 是arguments下的一个属性: arguments.callee;
        console.log(arguments.length);//获取实参个数
        console.log(arguments.callee.length);//获取形参个数
        console.log(test.length);//获取形参个数
    return: 将函数处理的结果通过return返回给函数的调用者
        使用return注意事项:
            1. 函数可以没有返回值(也就是可以没有return)
               如果有只能有一个return。
            2. 在程序执行过程中见到return就返回,不会继续执行return后面的代码。

四、函数的好处:

1.能够大大简化代码的可重复使用
2.编程模块化

五、函数作用域

作用域链: 在JS中,如果某个变量没有var声明,就会自动到上一级作用域中去找这个变量的声明,
          如果找到就使用,如果没有找到就继续向上查找,一直找的全局作用域为止;
          如果全局作用域里也没有这个变量的声明语句;
          那么浏览器就会自动帮你在全局作用域中对这个变量进行声明 (这种变量叫做隐式声明)
注: 在JS中只存在函数作用域不存在块作用域

六、递归

递归: 函数执行过程中自己调用自己
    var sum = 0;
    var a =0;
    function fn() {    
        sum+=a;3
        a++;                        
        if (a>100) {
            return a;
        }        
        fn();    
        console.log(sum);            
    }
    fn();    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值