函数初识

  1. 三角函数sinx=对边/斜边
  2. 函数
  1. 是被设计为执行特定任务的代码块,就相当于电饭锅
  2. 把相同的重复的流程打包,方便重复调用
  1. 简单例子
  1. function 电饭锅(米,水,电){
  2. 1.加热到100度;
  3. 2.保温30分;

创建函数

  1. 基本方式定义函数
  1. 通过 function 关键词进行定义,其后是函数名,括号 (),大括号{}。
  2. 语法:
  3. 小李子:function abc(){ alert("轩辕")}
  1. 自面量方式定义函数(赋值法定义函数)
  1. 通过 function 关键词进行定义,其后,括号 (),大括号{}。并赋值给一个变量    
  2. 变量名就相当于函数名
  3. 语法:
  4. 小李子:var dfg = function (){ alert("斗破苍穹");};

函数调用

  1. 语法:函数名();
  2. 常见情况
  1. 当事件发生时(当用户点击按钮时)
  2. 当 JS 代码调用时
  3. 函数创建完成后自动调用

函数传参

  1. 创建函数流程
  1. 声明函数,确定函数名称,搭建函数框架
  2. 想清楚让函数怎样执行(执行过程)
  3. 确定函数的参数
  4. 形参实参
  1. 形参:形式上的参数没有实际值,只作用与函数内部(比如x,y)如下图。
  2. 实参:实际存在(比如a,b,c)

函数返回值

  1. 返回执行结果,不会在页面中显示,需要用变量来接收
  2. 函数遇到return,会立即返回结果,并中止函数
  3. 函数外部使用变量接收函数的执行结果.
  1. 结果想怎么用就怎么用

函数调用函数

  1. 其实通俗一点就是函数参数为函数
  2. 例如:jiafa()函数中参数12换成一个函数来运算。
  3. 小李子:计算(2+3)*4的结果

全局变量与局部变量

  1. 函数外部声明的变量为全局变量,在整个js文档中都可调用;
  2. 函数内部用var声明的变量是局部变量,只能在函数内部调用;
  1. 局部变量,函数执行完就从内存中删除
  2. 能用局部变量声明的,就不要用全局变量,能提高效率;
  1. 函数内部不用var声明,直接赋值方式声明的变量是全局变量;

匿名函数

  1. 匿名函数:没有函数名
  1. 函数没有函数名,而是直接赋值给一个变量通过变量调用或直接调用
  2. 注意:函数的调用语句,必须放在函数声明语句之后!!!
  1. 分情况
  1. 自调用
  2. 当事件发生时调用
  1. 这段代码只需要知道浏览器加载后直接弹出这句话
  1. 函数中调用
  1. 这段代码意思:3000毫秒后执行即函数调用函数

回调函数

  1. 举一个网上比较流行的例子
  1. 男友李大锤对女友张小翠说:回家后给我发个短信保平安、
  2. 回调函数:回家是主函数,发信息是回调函数。
  3. 你把“发条信息函数”当成参数传给“回家的函数”,然后你女朋友必须先回到家以后,
  4. 主函数执行完了,再执行传进去的“发条信息函数”,然后你就收到一条信息了。
  5. 更准确来说:(callback函数)函数B作为参数传递到另一个函数A中,函数A执行函数B。函数B叫做回调函数
  1. 小李子
  1. 代码分析:函数a,b,c,d依次是加减乘除法,fn函数调用函数m,m代表任意函数,比如说将形参x=12,y=4,m=d来看,d就是回调函数

递归函数

  1. 就是函数自己调用自己
  2. 注意:递归函数必须有跳出条件,否则就是死循环
  3. 小李子
  1. 上面这段代码若是没有判断语句即无限调用死循环。
  2. 也可以使用递归函数进行简单运算

内置功能函数

  1. 常见有以下四种
  1. Number() 转换成数值类型
  1. typeof 用来判断字符类型
  1. String() 转换成字符串类型
  2. Boolean() 转换成布尔类型
  3. parseInt() 将字符串转换为整型