JS基础第四天

本文深入讲解JavaScript函数的基础概念,包括函数的两种声明方式、形参与实参的区别、函数的返回值处理、内置参数对象arguments的应用,以及函数作用域的相关知识,并提供多个实用案例。
  // 函数
    // 声明方式:2种
    // 1.字面量声明
    // 语法:  function  函数名  (参数1,参数2) { 函数体  }
    // 参数是可有可无的,实参和形参的个数尽量匹配使用,这是规范
    // 写在函数声明的小括号里的参数叫做形参
    // 写在调用小括号里的叫做实参
    // 形参和实参的区别:形参是形容参数使用的,不是具体的值,实参是根据调用时传递的值决定的,是一个具体的值
    // eg:  
    // arr就是形参,具体是什么还不知道
    // function getSum(arr) {
    //     var sum = 0;
    //     for (var i = 0; i < arr.length; i++) {
    //         sum += arr[i]
    //     }
    //     console.log(sum);
    // }
    // // [1,2,3]就是实参,是一个具体的数值
    // getSum([1, 2, 3])


    // 2.匿名函数(变量声明)
    // 语法:var 变量名 = function (参数1,参数2) { 函数体  }
    // arr是形参,需要从外部传递
    // var getSum = function (arr) {
    //     var sum = 0;
    //     for (var i = 0; i < arr.length; i++) {
    //         sum += arr[i]
    //     }
    //     console.log(sum);
    // }
    // // [2,3,4]就是实参
    // getSum([2,3,4])
    // 注意:函数声明后,不会自己执行,需要调用才会执行

    // 函数返回值
    // 1.如果不写return,或者只写return,那么返回值都是undefined
    // 2.如果需要返回值,就在return后面添加要返回的数据
    // 3.函数的返回值是由renturn来决定的
    // 4.函数一旦执行了return,那么后面的代码就不会执行了,所以return通常写在函数的最后一行
    // 5.实际开发写法,会将函数的返回值保存在一个变量中去使用
    // function getSum(arr) {
    //     var sum = 0;
    //     for (var i = 0; i < arr.length; i++) {
    //         sum += arr[i]
    //     }
    //     // return [1,2,3]
    //     return sum
    //     console.log(sum);
    // }
    // // console.log(getSum([1, 2, 3]));
    // var result = getSum([1, 2, 3])
    // console.log(result);

    // 函数之间的相互调用
    // function fn1(){
    //     console.log(1);
    //     console.log(2);
    //     fn2()
    //     console.log(3);
    // }
    // function fn2(){
    //     console.log(4);
    // }
    // fn1()// 1243
    // 原则:执行代码的时候是从上往下执行,如果碰到了调用其他函数,先去执行其他函数,当其他函数执行完成后,在继续执行当前函数

    // 函数的内置参数对象
    // arguments:是在函数内容使用的,系统帮我们定义的对象
    // eg:
    // function getSum(num1,nm2){
    //     // arguments原理:
    //     // var arguments = []
    //     // arguments[arguments.length] = num1
    //     // arguments[arguments.length] = num2
    //     // ...
    //     // arguments[arguments.length] = numx
    // }
    // 使用场景:当我们不知道函数调用的时候会传递多少个实参的时候,我们可以不定义形参,直接使用内置参数对象argunments,它是一个数组,包含了每一个实参
    // 实际应用:
    // function getSum(){
    //     var sum = 0;
    //     for(var i=0;i<arguments.length;i++){
    //         sum+=arguments[i]
    //     }
    //     console.log(sum);
    // }
    // getSum(1,2,3,4,5)
    // // 原理分析:
    // function getSum(){
    //     // 系统相当于帮我们做了这样一件事,所以我们可以直接使用arguments
    //     // var arguments = [];
    //     // arguments[0] = 1
    //     // arguments[1] = 2
    //     // arguments[2] = 3
    //     // arguments[3] = 4
    //     // arguments[4] = 5
    //     var sum = 0;
    //     for(var i=0;i<arguments.length;i++){
    //         sum+=arguments[i]
    //     }
    //     console.log(sum);
    // }

    // 函数的作用域:
    // 全局作用域: 在script标签内的区域,或者是单独的js文件
    // 局部作用域(函数作用域):在函数内部的区域
    // 全局作用域下声明的变量叫做全局变量
        // 全局变量可以在任何一个地方使用
    // 局部作用域下声明的变量叫做局部变量
        // 局部变量只能在函数内部使用

    // 作用域链:
    // 当局部作用域使用一个变量,但是找不到的时候,他会顺着自己的作用域向上查找,直到全局作用域位置,这样会形成一条链,就是作用域链

    // 作业:需要封装的函数:
    // 1.利用函数实现求数组的和,及平均值
    // 2.利用函数实现求数组的最大值,最小值
    // 3.利用函数实现翻转数组
    // 4.利用函数实现冒泡排序
    // 5.利用函数实现判断润年然后提示2月有多少天
    // 5.利用函数实现任意两个数之间的求和

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值