函数

创建普通函数(分为系统)

语法:

// 使用自定义函数,将多个地方使用的代码封装到一个函数中
function
函数名(){ 函数体——要封装的反复执行的代码 }

例1:

function say(){
    console.log('hello');
    console.log('word');
}
// 调用
say();

例2:

// 使用函数封装10+20的结果,并打印出来,调用3次

function add(){
    console.log(10+20);
}

add();
add();
add();

例3:

// 计算1-100的和,并打印结果,调用3次
function getsum() {
    for(i=1,sum=0,i<=100,i++){
        sum+=i
    }
    console.log(sum)
}
getsum();
getsum();
getsum();

创建带有参数的函数

// 语法
function 函数名(参数){
    函数体
}

例1:

// 任意两个数之和
function add(num1,num2){         // 形参
    console.log(num1+num2);
}
add(1,2); // 实参

例2:

// 创建函数getSum ,传递1个函数,计算1-任意数字之间的和
function getSum(num1){
    for(var i=1,sum=0;i<=num1;i++){
        sum+=i;
    }
    console.log(sum);
}
getsum(50);

例3:

// 创建函数getRun,传递2个参数,打印任意两个年份之间的所有闰年个数

function getRun(num1,num2){
    for(var i=num1,count=0;i<=num2;i++){
        if(i%4==0 && i%100!=0 || i%400==0){
                count++;
        }
    }
    console.log(count);
}

getRun(2000,2010);

例4:

// 出现一个形参,就相当于声明了一个变量
function add(num1,num2){
    console.log(num1);
    console.log(num2);
}
add(1,2)

创建带有返回值的函数

例1

function play(){
    console.log('吃火锅');
    console.log('吃海鲜');
    console.log('看表演');
    // 函数执行完后的结果
    return '火锅底料';
}

// 函数的返回结果
var res = play();
console.log(res);

例2:

function add(num1,num2,num3){return num1+num2+num3;
}

var sum = add(1,2,3);
console.log(sum);

例3:

// 传递两个参数,返回最大值

function getMax(num1,num2){
    if(num1>num2){
        return num1;
    }else{
        return num2;
    }
}

var res=getMax(2,5);
console.log(res)

例4:(三目运算符也可以实现)

// 传递3个参数,返回最大值
function getMax(num1,num2,num3){
    if(num1>num2){
        var max=num1;
    }else{
        var max=num2;
    }
    // max和第三个数比较
    if(max>num3){
        return max;
    }else{
        return num3;
    }
}
var res = getMax(12,34,23);
console.log(res);

例5:

// 创建函数isRun,传递1个参数(年份),是闰年返回true,不是闰年返回false

function isRun(year){
if(year%4==0 && year%100!=0 || year%400==0){
return true;
}else{
return false;
}
}

// console.log(res);
if(res=true){
console.log(365)
}else{
console.log(365)
}

var res = isRun(2000);

 例6:

 // 创建getStatus,传递1个参数(订单状态码),返回对应的中文;
 // 1-待付款    2-待发货    3-运输中   4-已签收    5-已取消    其它状态码-无法查询
 function getStatus(code){
     switch(code){
         case 1:
             return '待付款';  // 函数内部使用return;
             break;          // 此处break可以省略;
         case 2:
             return '待发货';
             break;
         case 3:
             return '运输中';
             break;
         case 4:
             return '已签收';
             break;
         case 5:
             return '已取消';
             break;
         default:
             return '无法查询';
     }
 }
 var res = getStatus(2);
 console.log(res);

 

函数_变量的作用域

作用域分为两种:全局作用域和局部作用域

在函数中使用var申明的变量是局部变量,未使用关键字申明的变量是全局变量;

JS程序执行前,使用var关键字申明的变量会提升到所在作用域最前面,但复制还是在原来的位置

 console.log(a);
 var a=1;   // var a;会提升到前边,而a=1还是在当前位置;

例1:

 

递归调用【自己调用自己】

       省略

 

斐波那契数列

1   1   2    3   5    8    13     21   ...

// 斐波那契数列

function fib(n){
    // 跳出条件:n为1或者2的时候,返回1
    if(n==1 || n==2){
        return 1;
    }
    return fib(n-1)+fib(n-2);
}
var res=fib(20);
console.log(res);

 

匿名函数

// 匿名函数(函数表达式)
// 把创建的函数的地址保存到fn中
var fn=function(n){
    console.log(n);
};
// fn成为了匿名函数的名称
fn(2);

例1:

// 使用函数表达式计算1-100的和
var getsum=function(n){
    for(var i=1,sum=0;i<=n,i++){
        sum+=i;
    }
    return sum;
}
var res=getsum(100);
console.log(res);

回调函数

// 如果实参传递的是一个匿名函数,那么形参就是成为了一个函数
function fn(num1){

}
fn(1);
fn(function(){});

例1:

// 创建函数add,传递2个参数,2个参数都是以匿名函数的形式传递,在匿名函数中分别返回两个数字,
// 最后在add中计算两个数字相加

function add(num1,num2){
    //调用函数
    return num1()+num2()
}
var res=add(function(){
    return 2;
},function(){
    return 3;
});
console.log(res);

全局函数

 

  • // 对一个url进行编码

    encodeURL

  • // 对一个已经编码url进行解码

    decode

  • // 将数据转为整形

   psrseInt 

  • // 将数据转为浮点型

    parseFloat

  • // 检测一个数据是否为NaN(是——true    否——false)

    isNaN

  • // 检测一个数据是否为有限值

    isFinute  

 例1:

// 使用弹出提示框输入一组运算,使用eval执行这组运算
var str=prompt('please input');
console.log(eval(str));

 

总结:

匿名函数:

function fn(){ }       // 函数声明

var fn=function(){  }      // 函数表达式

创建函数

匿名函数自调用

(function(a){    })(1);

回调函数

 function add(num){ num(); }

 add(function(){var a=1;return a;});

posted @ 2019-10-24 13:54  Alieen617  阅读(207)  评论(0编辑  收藏  举报