Javascript 函数

1.函数

 Number()/parseInt()/parseFloat()/alert()/prompt()...

 函数分为系统函数和自定义函数

 函数:是一个功能体,提供若干个数据,返回处理结果,用于封装要重复执行的代码

 (1)创建普通函数

function 函数名称(){

  函数体 —— 封装的要重复执行的代码

}

 函数只是创建不会执行函数体中的代码

 调用   

   函数名称()    //执行函数体中封装的代码

 练习:创建函数getSum,在函数体中封装计算1~100之间所有整数的和并打印结果,最后调用多次

 

 (2)创建带有参数的函数

function 函数名称(参数列表){  //用于接收外部传递的数据

  函数体

}

  调用

   函数名称(参数列表)  //实际传递的数据

  创建函数时的参数称为形参,调用函数时的参数称为实参,实参会赋值给形参,实参和形参的数量可以不匹配,如果形参未被赋值则为undefined。

  练习:创建函数getRun,传递两个参数,统计任意两个年份之间所有的闰年个数,调用多次。

 

 (3)创建带有返回值的函数

function  函数名称(参数列表){

  函数体

  return 值;  //返回值,函数调用后得到的结果

}

 调用

    函数名称(参数列表)

  return用于返回函数调用的结果,如果函数中没有写return或者return后不加任何值则返回undefined,一旦return执行就会结束函数的执行。

 练习:创建函数getMax1,传递任意两个数字,返回最大值

function getMzx1(a,b){
    if (a>b)
    {
        return(a);
    }else{
        return(b);
    }
}console.log(getMzx1(3,5));

(2)function getMzx1(a,b){
    return a>b ? a : b
}console.log(getMzx1(3,5));

 练习:创建函数getMax2,传递任意3个数字,返回最大值

function getMax2(a,b,c){
    //return a>b && a > c ? a: (b>c ? b : c);
    var m = a>b?a:b;
    return m >c ? m : c;
}
console.log(getMax2(3,5,1));

 练习:创建函数getStatus,传递订单的状态码,返回对应的汉字的状态

  1-等待付款  2-等待发货  3-运输中  4-已签收  5-已取消   其它-无法追踪

function getStatus(a){
    switch (a)
    {
    case 1: return '等待付款';
    case 2: return '等待发货';
    case 3: return '运输中';
    case 4: return '已签收';
    case 5: return '已取消';
    defaullt: return('无法追踪');
    }
}
console.log(getStatus(2));

  使用switch-case进行多项判断

对比return和break

return用于函数中,结束函数的执行

break用于循环和switch-case,结束循环或者switch-case的执行

  练习:创建函数isPrime,传递任意一个数字,查看是否为素数,返回布尔型的值

function isPrime(n){
for(var i=2,count=0;i<n;i++){
    if(n%i===0){
        return false;
    }
}
    return true;
}
console.log(rsPrime(7));

  练习:创建函数isRun,传递任意一个年份,查看是否为闰年,返回布尔型的值

function isRun(i){
    return i %4 ===0 && i %100 !=0 || i %400===0
}
console.log(isRun(2021));

2.变量的作用域

 全局变量:在全局作用域下声明的变量就是全局变量,可以在任意的作用域访问到

 局部变量:在函数作用域下声明的变量就是局部变量,只能在当前的函数作用域下访问到

 全局作用域:函数以外的作用域

 函数作用域:函数以内的作用域

 函数内不加var声明的变量是全局变量

 变量提升:在程序执行前,会将var声明的变量提升到所在作用域的最前边,只是提升声明,赋值不提升

3.函数的作用域

 全局函数:在全局作用域下创建的函数,可以在任意作用域下访问到

 局部函数:在函数作用域下创建的函数,只能在当前函数作用域下访问到

 作用域链:多个作用域嵌套构成的作用域结构,在寻找变量的时候,先到当前的作用域下寻找,如果当前没有会不断往上一级作用域寻找。

 函数提升:程序执行前,会将函数提升到所在作用域的最前边,是整体提升

斐波那契数列

第1项、第2项都是1,从第3项开始,每项的值是前两项相加的和;

1   1   2   3   5   8   13   21...

 练习:创建函数fib,传递任意一项,返回斐波那契数列下这一项的值

function fib(n){
    if (n===1 || n===2)
    {
        return 1;
    }
    for(var i=3;i<=n;i++){
        a3=a1+a2;
        a1=a2;
        a2=a3;
    }
    return a3;
}
console.log(fib(7));

 练习:创建函数getSum,传递任意一个数字,计算1~任意数字之间所有整数阶乘的和。

function getSum(n) {
    for (var i=1,j=1,sum=0;i<=n ;i++ )
    {
        j*=i;
        sum+=j;
    }
    return sum;
}
console.log(getSum(5));

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

D_evin_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值