前端学习js基础第四天---函数以及函数的作用域详解

34 篇文章 0 订阅
31 篇文章 0 订阅

学习函数之前我们应该明确为什么要学习函数?

函数可以进重复冗余的代码进行封装将来函数还可以多次调用

一.函数的基本知识

1.函数的声明和调用

声明:function 函数名(){函数体}

调用:函数名()

注意点:函数在声明后不会立即执行,徐亚调用之后才能使用,,而且函数还可以多次调用

2.函数的参数(形参和实参)

形参:形式参数,本身没有具体的值或者类型,只在将来函数调用的时候才有值

         在函数声明时,定义在函数名()中的参数,就叫形参

          作用:占位置

实参:实际参数,有具体的类型和值

        在函数调用时,传递的参数就叫实参

        作用:可以通过调用将值传递给形参

3.函数的返回值

return 值;

在开发过程中,一般函数执行都会有结果,如果需要拿到结果就需要return把它返回

4.函数三要素

函数名

参数(可有可无)

返回值(可有可无)

二.函数的进阶内容

1.函数的参数和返回值进阶

函数的参数:

        1,如果函数名重名了,后面的函数会将前面的函数覆盖

         2.实参和形参的个数问题,形参大于实参,形参没有值返回undefined,小于实参,多余实参被忽略

函数的返回值:

          1.return 表示返回函数的结果,还可以结束当前函数,后面的代码不会再执行

           2.函数可以没有返回值,如果没有设置返回值,自动returnundefined

           3.return可以单独使用,用于提前结束函数,相当于return undefined

2.函数内部可以调用函数

3.控制台的断点调试(重要)

1.为什么需要断点调试,我们需要在调错或者执行代码时,一步步查看代码的执行过程

2.断点调试的步骤

 (1) f12打开控制台

 (2) 找到sources,打开对应的文件

 (3) 添加断点,刷新页面

 (4) 代码就停留在断点处

3.断点调试的按钮

f8 直接往后执行到下一个断点

f10 一步步执行,但是到了含糊直接执行完函数

f11 一步步执行,也会进入函数一步一步走

shift + f11 跳出当前函数

三.函数的重点

1.作用域(变量起作用的区域)

全局变量(在任何地方都可以访问到):在script标签内,在函数外,声明的变量就是全局变量

局部变量(只在当前函数内可以访问):在函数名声明的变量就是局部变量

隐式全局变量:对于一个从来没有声明过的变量直接赋值,就是隐式全局变量

变量的访问规则:自己有就访问自己的,自己没有就访问外面的

2.预解析

预解析初体验: 1.先进行预解析,目的是确保代码没有语法错误,确定有多少变量

                        2.再代码一行一行的执行

预解析的规则:

1. 将所有的var 提升,只提升声明不提升赋值,如果有重名的var 后面的把前面的覆盖

2. 将所有函数提升,只提升函数声明不提升调用,也会覆盖

3.如果函数与var同名,函数优先,var被忽略

先提升函数,后提升变量,函数优先

3.声明函数的两种方式

1. 声明式  function fn(){..}

2. 表达式的方式  var fn = function(){ .. }

区别,声明时可以先调用,后声明,因为预解析会提升函数的声明,但是表达式必须先赋值再调用

4.匿名函数(没有名字的函数,不能直接使用)

使用方式:1.可以赋值给变量,var fn = function(){}

                2.可以匿名函数自调用,(沙箱),防止变量命名的全局污染

5.递归函数

自己调用自己,主注意要有结束条件,不能成死递归

复杂问题简单化,找出规律

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值