函数执行方式、函数表达式、参数、返回值

一.函数

基本形式:function a(){},函数在调用时才会执行。

1.函数执行方式

调用执行:a();
被动执行:document.onclick = a;(其后不加括号,事件触发时才会执行)

2.匿名函数

匿名函数要参与到表达式中,不可单独出现,否则报错。比如赋值给事件。
document.onclick = function(){
console.log(“匿名函数”)
}
若我们将一个函数赋给了事件并且给它取了名字,它是不可以被调用的,比如:

document.onclick = function aa(){
console.log("匿名函数")
}
aa();    是会报错的
3.作用域
  • 全局作用域,对应全局变量
    全局变量即没被任何东西限制,直接写在script中。全局变量可以被所有的对象使用,其他对象也可访问,全局不可访问局部。
  • 局部作用域,对应局部变量
    局部变量可访问全局,但不可访问其他作用域的变量。局部作用域的东西不可被其他作用域的东西使用。

作用域链:使用某一变量时,先从自身作用域找,没有的话,往上一级找。
全局变量和局部变量名字可以相同,作用域可无限嵌套。调用时,具备就近原则

例1:

function x(){
	let a = 2;
}

此处的x为全局变量,a为局部变量
例2:

  let a = 2;
  function x(){let b = 3}
​  console.log(a,b)

此处因为b是局部变量,在全局中打印,找不到b,所以会报错。

例3:

   let a = 2;function x(){let b = 3
​      console.log(a,b) //此处打印2,3,可知局部可访问全局}x();
4.函数表达式
        aa();
        //函数声明,可提前调用,即可提前解析、使用
        function aa(){
            console.log("aa函数")
        }
        //函数表达式,不可提前使用。
        let bb = function(){
            console.log("bb函数")
        }

        aa();
        bb();
        let bb = function(){
            console.log("bb函数")
        }()  //函数表达式可加括号自执行,因其是被赋给表达式的。这个方法不大会用

函数变函数表达式方法:

当我们在写项目时,可能会遇到词穷的时候,变量名会不够用,我们就可以用这种方式,各自开辟一些作用域,在不同作用域定义相同名字的变量也可。

        (function(){
            console.log("11")
        })();
        !function(){
            console.log("11")
        }();
        +function(){
            console.log("11")
        }();
        -function(){
            console.log("11")
        }();
        ~function(){
            console.log("11")
        }();
5.参数

参数分为形参(定义函数时规定好的变量名,作用于函数内部)和实参(调用函数时传入的实际数据),调用函数时,传参

        function sum(a,b){  //此处a,b为形参
            console.log(a+b)
        }

        sum(1,2)  //此处1,2为实参

当我们不确定形实参的个数时,形参不可以一一预设好对应的变量,我们可以用arguents来显示所有实参。

        function sum(){  
            console.log(arguments)
        }

        sum(1,2) 
        sum(1,25,7,9,) 
        sum(1,4,6) 
        sum(1,2,3,6,7) 

在这里插入图片描述

6.返回值

一个函数执行完后,默认返回值为undefined.

        function sum(x,y){
            let z = x+y
        }
        let a = sum(2,3)
        console.log(a)  //打印undefined
        function sum(x,y){
            let z = x+y
            return z
        }
        let a = sum(2,3)
        console.log(a)  //打印5

我们在写代码的时候,一般采用第二种方式,函数返回一个什么东西,使用时,直接传实参到函数中,并赋给一个变量,直接使用函数的返回值。所以我们在写注释时,要表明两个东西:

  • @params

    告诉使用这个函数的re,应该传入什么实参

  • @reutrn

    告诉使用这个函数的人,我会返回什么数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值