js中函数的概念及方法

  • js中函数的概念及方法已关闭评论
  • 122 次浏览
  • A+
所属分类:Web前端
摘要

函数 实际就是多行代码的抽取(多行代码会构成特定的功能)(方法)减少冗余代码(重复的代码放在函数里面 在需要的时候调用)函数封装(特定的一些代码使用函数来包起来),


函数的概述

函数 实际就是多行代码的抽取(多行代码会构成特定的功能)(方法)

函数的优点

减少冗余代码(重复的代码放在函数里面 在需要的时候调用)函数封装(特定的一些代码使用函数来包起来),

提高了代码的可维护性及可阅读性。

函数的分类

  • 系统函数 window里面的所有函数都属于系统函数 (console.log() alert() prompt()...)

  • 内置函数 所有的内置对象里面的函数 都叫内置函数 (Math.pow())

  • 自定义函数( 自己定义的函数)

内置函数和系统函数我们更关注于他的使用 自定义函数(定义以及使用)

自定义函数的定义以及调用

1、使用function关键词 定义匿名函数(没有名字的函数)
function(形参(可以省略的 可以有多个)){     函数体(代码) } //直接调用 让别人(事件)去调用(自动调用) (function(){     console.log('匿名函数') })()

匿名函数 (声明比较少 他没有复用价值)

2.使用function关键词 定义具名函数 (有名字的函数)
function 函数名(形参,形参...){     函数体(代码) } //声明 具名函数(第一种) function sayHello(){     console.log('hello') } sayHello()  //传递参数 function sayHello1(name,age){ //形参是形容的参数      console.log('hello'+name+age) } sayHello1('李四') //传进的是实参 根据你要的参数个数来传递对应的参数个数 //调用 // sayHi() //报错 // console.log(sayHi); undefined //具名函数的变种声明 (第二种) var sayHi = function(){     console.log('hi') } sayHi()

3.使用new Function方式
var 函数名 = new Function('形参,形参1','函数体') //定义 var sayBye = new Function('console.log("bye bye!!")') //调用 sayBye() //传参 var sayBye = new Function('username','console.log("bye bye!!"+username)') //调用 sayBye('李四')

函数的执行过程

1.把对应的开辟的function内存里面的代码块丢给方法栈(执行栈)去执行

2.执行栈就会自动取执行对应的方法 执行完返回对应的结果

3.当前结果返回完毕以后 对应的执行栈里面的内存空间要进行回收(GC)将这个内存空间销毁

函数的作用域

当前一个变量的作用范围 分为局部作用域(在一个函数内声明的 或者是在一段代码块内声明的 他的作用范围就是当前的代码块)和全局作用域(在对应的全局声明的 他的作用范围就是全局的)

作用域链

当前的作用域内没有找到对应的变量就会向上去寻找 而这个过程构成的链式结构称为作用域链

var a = 20 function fn(){     console.log(a);//undefined 没有var关键词就20     var a = 10     if(10>9){         console.log(a);//undefined 没有var关键词就10         var a = 30         if(5>4){             console.log(a);//undefined 没有var关键词就30             var a = 40             if(a>10){                 console.log(a);//40             }         }     } } fn()