函数是一种用于存储代码块的复杂数据类型 * 作用:解决代码复用问题
函数语法
1.声明函数 : 是一个存储过程,此时不会执行函数体代码
function 函数名(){
函数体代码: 需要存储的一段代码
}
2.调用函数 : 执行函数体代码
函数名()
函数传参
传:调用者 函数名(实际参数)
收:函数 function 函数名(形式参数){ //函数体代码 }
函数传参本质: 实参给形参赋值的过程
(1)函数传参是按照传入顺序一一赋值
(2)函数每一次调用传参过程都是独立的,互不影响
(3)函数 形参数量 和 实参数量 可以不一致的
短路运算: 左边式子就可以决定结果,右边式子不执行
&& : 一假则假
|| : 一真则真
! : 取反(没有短路运算,因为只有一个式子)
2.2 短路规则:
&& : 找假。 左边式子值可以转成false,则无条件返回左边式子的值,
右边不执行。 反之无条件返回右边式子的值。
|| : 找真。 左边式子值可以转成true,则无条件返回左边式子的值,
右边不执行。 反之无条件返回右边式子的值。
函数返回值 : 函数 传递数据 给调用者
注意点
(1)函数return关键字后面的代码不会执行的
* 只要有return关键字,函数体立即结束执行。
(2)如果函数没有return,则默认返回值是undefined
1.js变量作用域: 变量可以使用的区域
作用:避免变量污染(变量名相同导致代码冲突)
js三种作用域
1 全局作用域(全局变量) : 在函数外面let的变量
2 局部作用域(局部变量) : 在函数里面let的变量
3 快级作用域(快级变量) : 在分支或循环大括号中let的变量
作用域链: 默认情况下,代码处于全局作用域(0级链),当声明一个函数之后就会开辟一个局部作用域(1级),而函数里面又可以声明一个函数,又会形成新的作用域(2级),以此类推形成的结构称之为作用域链
变量访问规则: 就近原则