【第三天JavaScript函数】

函数简介

  • 概述:将一个常用功能进行封装,当你想使用时,可以选择调用,执行。
  • 注意:JavaScript脚本语言当中,函数分为两种:一种关键字function定义函数、表达式形式函数。
  • 函数使用分为两部分:声明、调用

2、关键字函数

//声明部分
function name(){
    语句;
}
//调用部分
fun();
  • 函数在JS当中属于Object引用类型数据,不是Function类型的【因为JS语言当中没有这个类型】

3、形参与实参

  • 形参:在函数声明的时候,声明部分的小括号里面可以书写形参。形参是变量,(只不过不需要用关键字var进行声明)

  • 实参:在函数调用的时候,调用时候传递数据称之为实参。l实参可以是任意类型数据。

  • 形参个数,不能决定实参个数。实参个数,也不能决定形参个数。

4、变量认知

  • 变量:在JS当中变量分为两种:局部变量、全局变量。

  • 局部变量:在JS当中局部变量,只有两种情况:①作为函数形参 ②变量在函数体中声明

  • 同C

5、作用域(scope)

  • 概述:作用域:可以理解为是书写代码的范围。

  • 全局作用域:书写JS代码范围最大的两个script标签之间。

  • 函数的作用域:即为函数体

<script type="text/javascript">
    //全局变量
    var count = 666;
    function fun (){
       console.log(count);
    }
    fun();
</script>
#	 由于函数作用域没有局部变量count,因此会沿着作用域练向上查找(等等,我找找我家老大看看他有没有)

#	 一看全局作用于中有全局变量count,因此函数作用域‘借来’使用一下。

5.1 面试题

var num = 66;
  function fun (){
  	  console.log(num);//undefined
  	  var num = 99;
  }
//	在JS当中任何语句都阻挡不了变量声明部分提升。
//	会提升到当前作用域最上方。

6、不同函数定义方式的区别

概述:在JS当中函数有两种形式:

  • 第一种: 关键字function定义的函数。

  • 第二种:表达式形式函数,就是讲关键字function定义的函数赋值给变量形式

    • var jch  = function  () {
          	 console.log("我爱你塞北的大学呀");
        }
      
  • ​ 将关键字function定义函数赋值给变量,这种形式的函数【称之为表达式形式函数】

  • ​ 表达式形式函数中省略关键字形式函数名字【匿名函数】

    • var jch  = function  () {
           	 console.log("我爱你塞北的大学呀");
      

7、表达式形式函数与关键字函数区别

  • 关键字形式函数可以在声明之前、声明之后调用。
  • ​ 由于解析器,可以将关键字形式函数声明部分提升到当前作用域最上方。
    • 表达式形式函数:只能在声明之后才可以调用。
    • 表达式形式函数:由于变量声明部分提升(提升到当前作用域最上方)

8、回调函数

callback:回调函数

概述:当一个函数执行的时候,传递实参是另外一个函数声明部分。这个实参(函数)即为回调函数。

function promise (a,b,callback){
       callback();}
promise(1,"我爱你塞北的血",function(){}) 
  • 当某一个函数执行的时候,传递实参是另外一个函数声明部分,这个实参的函数即为回调函数。
  • 回调传递的是匿名函数的值

9、递归

  function add (){
  		add ();
  }
//函数自己调用自己

10.IIFE 函数自执行

10.1 函数立执行

概述:IIFE,在声明表达式形式函数的同时立刻马上执行一次。

var fun = function (){
   console.log('我执行了')}

function sum () {console.log('我是关键字形式函数;}

  • ​ IIFE:在表达式形式函数声明同时立刻执行一次。所谓‘IIFE’

10.2 IIFE其他形式写法

概述: 关键字形式函数后面不能紧随小括号立即执行。但是程序员可以通过一些手段,将关键字形式函数变为表达式形式函数。

+function(){
   	 console.log("+号可以将关键字函数变为表达式形式函数");
   }();

-function(){
   	 console.log("-号可以将关键字函数变为表达式形式函数");
   }();

!function(){
   	 	 console.log("!号可以将关键字函数变为表达式形式函数");
   }();

(function(){
       console.log("小括号号可以将关键字函数变为表达式形式函数");
   })();
  • 加、减、非、小括号:可以将关键字形式函数变为表达式形式函数,立即执行一次(IIFE)

  • 每个IIFE都有自己独立的作用域,且互不影响。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值