一:1.函数的介绍
1.1 声明函数:声明函数只是存代码,并不会执行代码(敲黑板,重点哦)
1.2 函数的作用:解决复用,存储代码
1.3 需求:段代码 需要在很多个地方使用
1.4 调用函数:函数名()
1.5 函数参数:调用者数据 传递 函数
(1) 函数: function 函数名(形参){函数体}
(2) 用者: 数名(实参)
1.6 函数和循环区别
(1).本质区别 :函数是一种数据类型:负责存储代码 循环是一种语句 *它的原理:实参给形参赋值
附上一张当年流程图:

2.匿名函数:没有函数名的函数
2.1 匿名函数作用 :开辟局部作用域,避免全局变量污染
2.2 小细节:名函数自执行的时候,上一个语句分号不能省略
//具名函数
function fn() {
console.log('6666')
}
fn()
//let fn1 = 匿名函数
let fn1 = function () {
console.log('1111')
}
fn1();
/* 如何执行匿名函数 : 自执行语法
(匿名函数)() //开辟独立作用域,避免全局变量污染
(function () {
let num = 10//局部变量
console.log('111')
})()
3逻辑中断:
3.1 函数默认参数,我们自己在开发中使用不多。(了解后面很多js框架函数默认参数底层原理)
3.2 函数默认参数 使用 逻辑运算符短路运算(逻辑中断)
(1) 短路运算: 左边式子就可以决定结果,右边式子不执行
&& : 一假则假
|| : 一真则真
! : 取反(没有短路运算,因为只有一个式子)
(2) 短路规则:
&& : 找假。左边式子值可以转成false,则无条件返回左边式子的值,右边不执行。 反之无条件返回右边式子的值。
|| : 找真。左边式子值可以转成true,则无条件返回左边式子的值,右边不执行。 反之无条件返回右边式子的值。
扩展一下:
1.任何数据类型共同点(值类型,引用类型)
* 都有变量赋值特点
2.引用类型特点
* 函数: 函数名()
* 数组: 数组名[下标]
* 对象: 对象名.属性名
//函数
let fn = function(){
alert(1111)
}
//引用类型也是数据类型,也拥有变量赋值的特点
let a = fn
//函数语法: 函数名()
let res = fn()//返回值undefined
//数组
let arr = [10,20,30]
//引用类型也是数据类型,也拥有变量赋值的特点
let arr1 = arr
//数组语法 : 数组名[下标]
let num = arr[0]//10