是什么,作用是啥,
function执行特定任务的代码块,代码复用
语法
function () {}
函数名命名规范 ➢ 和变量命名基本一致 ➢ 尽量小驼峰式命名法 ➢ 前缀应该为动词 ➢ 命名建议:常用动词约定
调用
function 声明,函数不调用自己不执行 调用方式:函数名() 函数的复用代码和循环重复代码有什么不同? ➢ 循环代码写完即执行,不能很方便控制执行位置 ➢ 随时调用,随时执行,可重复调用
函数的传参
➢ 形参:声明函数时写在函数名右边小括号里的叫形参(形式上的参数)
➢ 实参:调用函数时写在函数名右边小括号里的叫实参(实际上的参数)
➢ 形参可以理解为是在这个函数内声明的变量(比如 num1 = 10)实参可以理解为是给这个变量赋值
➢ 开发中尽量保持形参和实参个数一致
➢ alert('打印'), parseInt('11'), Number('11') 本质上都是函数调用的传参
参数中间用什么符号隔开? ➢ 逗
函数的返回值
➢ 在函数体中使用 return 关键字能将内部的执行结果交给函数外部使用
➢ 函数内部只能出现 1 次 return,并且 return 后面代码不会再被执行,所以 return 后面的数据不要换行写
➢ return会立即结束当前函数
➢ 函数可以没有 return,这种情况函数默认返回值为 undefined
作用域
函数外部的变量 全局变量在任何区域都可以访问和修改**
函数内部let的变量 局部变量只能在当前函数内部访问和修改
** {}内部的let变量 只能在块作用域访问,不能跨块访问,也不能跨函数访问
注意: 局部变量或者块级变量 没有let 声明直接赋值的当全局变量看
变量访问原则-作用域链
作用域链:采取就近原则的方式来查找变量最终的值 (简单来说就是,在同作用域下时就访问当前作用域,没有就往外一级的作用域访问,不会往里访问)
匿名函数
立即执行函数
函数参数的伪数组
伪数组,没有数组的用法,比如数组的追加,删除.......
**如果实参的个数大于形参,那么后续的传递的值会被忽略
反之 ,小于,那么形参默认为undefined**