什么是函数?答:封装特定功能的代码块。函数也是对象
为什么需要函数?答:可以实现代码复用,提高开发效率
函数名([参数]),可写可不行时用中括号[];以下方法4了解就行了
断点调试:F10直接跳过函数执行步骤,而F11单步调用函数
函数的创建
函数解析 : var(变量) 函数名(有特定功能时要用有意义的名字定义,遵循小写驼 峰)= function (匿名函数) (里面参数) { 函数体也可以叫方法体 };函数名() 函数名加小括号(调用)
方法1:var 函数名 = function(){};函数名()
方法2:function 函数名(){};函数名()
方法3:var 函数名=()=>{}函数名()
方法4:var 函数名=new Function(`console.log('打印的内容')`);函数名()
嵌套函数:
在函数体中定义函数就是在函数体中创建函数并调用,这样就形成嵌套函数了
函数的作用域(变量能用的范围)
函数中变量的使用:能在函数体中能找到变量,就不会到函数体外面找变量 取变量:就近原则
`全局`:定义在外面(var/let/const)、分支循环代码块(var)在函数中可以用
`局部`:在函数中定义的变量,只能在函数体中使用
变量的全局作用域
1.不能用name定义全局变量,因为是关键字(关键字不能用来定义)
2.定义在外面(var/let/const)、分支循环代码块(var)在在变量中可以用
变量的块级作用域
1.let/const 定义在代码块中
参数 一个函数中动态,可以做为参数传入
形参:(接收的变量)是固定的
实参:(传递的数据)是动态的
参数的特性:
- 1.局部作用域(块级)
- 2.传递和接收是一一对应的
- 3.没有传递数据时,形参默认值是undefined
- 4.可以修改默认值,在形参后边(第二个)等于是直接赋值
返回值 :执行函数之后拿到数据
语法: return 数据,
1.return;是会终止整个函数的意思
2.一个函数里只有一个return,如果有多个return那么它只执行一个return
3.需要返回多个数据时,用封装到对象的方法返回
4.把数据封装到对象时,如果键值对的名和数据名一样时,可以直接使用键值名,也可以拿到数据