js函数定义及预解析

1.函数定义
函数定义使用关键字function
函数的特点:可以一次定义多次使用,方便代码管理,便于控制代码的执行时间,可将常用的功能进行封装。
语法:
(1)声明式定义函数
function 函数名(形参){
    函数内部执行代码
}

(2)赋值式定义函数
var  fn=function(形参){
    函数内部执行代码
}
形参:定义函数时接收数据的参数,可有可无,根据自己的需求去定义,多个参数直接用逗号隔开。

案例:
        求三个数的最大值
        function getMax(a, b, c) {
            var max = a
            if (b > max) {
                max = b
            }
            if (c > max) {
                max = c
            }
            document.write("最大值"+max)
        }
//函数调用,通过函数名加(实参)调用。
        getMax(32,23,64)

实参:函数调用时实际传入的参数,和形参一一对应,有形参无实参,默认为undefined,有实参无形参传多少都没用。
 
2.return语句
return 一般用于函数体内,终止函数体代码执行,一般放在函数体最后一行代码可以和其他逻辑分支语句,循环语句一起使用,用于向函数调用者返回一个值。
案例:
// 求三个数的最大值
        function getMax(a, b, c) {
            var max = a
            if (b > max) {
                max = b
            }
            if (c > max) {
                max = c
            }
//返回最大值
            return max
        }
//定义一个变量m接收返回值max
        var m = getMax(32, 23, 64)
//打印返回值
        document.write("最大值" + m)

返回值:将函数处理后的数据返回到函数名上,便于其他用户调用和使用,return可返回任何值,包含函数,当返回函数时如果需要执行返回的函数,可将返回值当成一个函数名,加一个()即可执行。

3.预解析
(1)把var声明的变量提到前面
(2)把function 定义的函数提到前面
(3)当函数名和变量相同时函数优先,如果执行变量赋值,同名的函数就转为变量

案例:

  console.log(num);     //undefiend
        var num=10
        f()//调函数f
        console.log(f2);   //undefiend

        function f(){
            console.log(n);   //undefiend
            var n=20
            console.log(n )   //20
        }

        console.log(num);   //10

        var f2=function(){
            console.log("我是f2")
        }


预解析处理后
   var num//把var声明的变量提到前面

//把function 定义的函数提到前面
   function f(){
            var n  //把var声明的变量提到前面
            console.log(n); 
            n=20
            console.log(n )
        }

   var f2  //把var声明的变量提到前面,注意(赋值式定义的函数不会提到前面,所以console.log(f2); 为undefined)

   console.log(num);  //undefiend
        num=10
        f()   //调函数f    控制台输出结果为 undefiend   20    undefiend
        console.log(f2); //undefiend

        console.log(num); //10

        var f2=function(){
            console.log("我是f2")
        }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值