js函数(上)

函数的参数

function add(a,b){//定义函数的时候,使用的参数叫形参----形式上的参数,没有实际的值  
        var a = 1;  
        var b = 2;  
        var c = a+b;  
        console.log(c);  
    }  
    add(3,4)//调用函数的时候,使用的参数叫实参----实际的参数,具体的值  
复制代码

函数的嵌套

//求总和的函数
    function add(a,b,c){
        var sum =a+b+c;
        return sum;
    }
    //求平均数的函数
    function avg(a,b,c,num){
        var s=add(a,b,c);     //在一个函数中调用另一个函数
        var a= s/num;
        return a;
    }
    var a = avg(2,5,8,3);
    console.log(a);
复制代码

变量的提升

1、浏览器在执行js代码之前有一个预解析;
2、先预解析再执行;
3、预解析就是找var和function的过程,找到以后,存到浏览器的仓库中,
4、执行js代码,执行的时候,没有声明过程,只有赋值的过程----从上到下从左到右读取代码
复制代码

常犯错误

console.log(a); // 因为变量a没有声名过,所以会报错
test(); // 函数未定义,所以报错
复制代码

变量预解析

console.log(a); // 因为变量a在执行之前进行了预解析,也就是已经放到内存中了,只是没有值,所以是undefined
var a = 1;


/* 预解析相当于下面的过程 */
var a; // 将变量的声名放到当前作用域的最前面
console.log(a); 
a = 1;
复制代码

函数预解析

test(); // 结 果:123	代码在执行之前经过预解析,将函数的内容放到了内存了,所以在下面的定义函数也能调用执   行
function test(){ console.log(123);


/* 预解析过程如下: */
function test(){ // 将函数声名放到当前作用域的最前面
console.log(123);
}
test();
复制代码

案例

// 1.匿名函数赋值给变量
fn();
var fn = function(){ 
    console.log(123);       //报错,fn不是一个函数了
}


// 2.函数内部的变量预解析
function test(){
    console.log(a); 
    var a = 10;
}
test();                  //undefined
复制代码

总结

1.用var关键字声名的变量,将变量的声名提升到当前作用域的最前面,赋值不提升
2.自定义的函数整体提升到当前作用域的最前面
3.函数同名,后面的会覆盖前面的
4.变量和函数同名,函数优先提升

return返回值

function add(a,b,c){
        var sum = a+b+c;
        console.log(sum);
        // return sum;
        console.log(123);
    }
    add(3,4,5);
    console.log(add(3,4,5)/3);
复制代码

function add(a,b,c){
        var sum = a+b+c;
        //console.log(sum);
        return sum;
        console.log(123);//没有执行
    }
    add(3,4,5);
    console.log(add(3,4,5)/3);
    
复制代码

return的作用:
1、让函数返回一个结果(不输出);
2、终止函数中的代码执行

转载于:https://juejin.im/post/5d4d3c3d6fb9a06b122f2a93

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值