JS学习笔记四——函数及作用域

一、函数介绍

函数是 JS 中的一个数据类型,其就类似一个盒子,其中可以承载一段代码,通过函数名来区分不同的函数。
函数分为两个阶段,函数定义阶段和函数调用阶段,函数在定义后不会立即执行其中的代码,只在函数调用后才执行相应代码。

  1. 函数定义阶段
    函数定义是指把代码装在函数中,并通过给函数命名,来确定一个函数。当函数想要返回一个值时,可以设置 return 语句放置返回的结果。
    语法:
    function 函数名(参数1,参数2,参数n){
     任意代码
     return 结果
    }
    注意 return 语句可有可无
  2. 函数调用阶段
    函数调用指的是执行函数中的代码,需要函数定义后进行,且可多次调用同一函数。当所调用的函数有返回值时,可以设置一个变量接收函数返回值。
    语法:
    函数名(参数1,参数2,参数n)

注意:
1、函数定义和函数调用中,()里的参数可写可不写,且定义阶段的参数为形参,而调用阶段的参数为实参。
2、形参相当于定义了变量,其值由实参决定,且该变量只可在函数内部使用。而实参是在函数调用时给形参进行赋值,从左到右依次赋值。
3、可以通过设置事件来调用函数,当事件触发时,函数会随之执行,如:id 名.onclick = function(){ } 表示当对应 id 的元素被点击时触发事件,且执行函数。

二、递归函数

递归是指通过逐层向下询问问题(递),直到最下方给出回答后,在将下方答案结合自身作为新答案,逐层向上传递答案(归),从而解决最上方问题的思路,即将问题简单化,只需了解前一步,通过向前传递,得到最易化的结果后,再传递回来,得到最终结果。
递归函数通过调用自身,将问题简单化,因此该函数需要设置折返点,即最易化后的结果,作为结束条件。

代码如下:

function fn(n) {
    if (n === 1||n === 2) return 1;
    return fn(n - 1) + fn(n - 2);
}

三、作用域

作用域指的是一个变量可以在什么范围内使用。

  1. 作用域范围
    作用域范围分为全局作用域和私有作用域,当一个页面打开便是全局作用域,只有函数会生成私有作用域,每个函数都会有自己的私有作用域,且不同函数的作用域存在层级关系
  2. 作用域使用
    又分为定义、访问和赋值。
    (1)定义指的是变量的定义,声明在哪一个位置的变量就是哪一个作用域的变量。
    (2)访问指的是使用变量时需要获取变量存储的值,原则是自己作用域内有该变量则直接用,没有该变量则找父级作用域的同名变量,以此类推,到全局作用域都没找到同名变量则报错。
    (3)赋值指的是直接给变量设置一个新的值,原则与访问类似,自己作用域内有该变量则直给自己的赋新值,没有则给父级的赋值,以此类推,到全局作用域都没有则直接定义一个全局变量再赋值

四、结语

本学习笔记主要用于记录博主个人的前端学习过程,目前学习资源来自b站千锋的前端1000集教学,如笔记内容有写错的地方,希望大家能够指出。同时,欢迎看到博文的小伙伴们与我一同学习!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值