学习js第四天 函数

函数

概述

  函数 实际就是多行代码的抽取(多行代码会构成特定的功能)

优点

  • 减少冗余代码(重复的代码放在函数里面 在需要的时候调用)
  • 函数封装(特定的一些代码使用函数来包起来)
  • 提高了代码的可维护性及可阅读性

分类

  • 系统函数 window里面的所有函数都属于系统函数 (console.log() alert() prompt()...)
  • 内置函数 所有的内置对象里面的函数 都叫内置函数 (Math.pow())
  • 自定义函数( 自己定义的函数)

内置函数和系统函数我们更关注于他的使用 自定义函数(定义以及使用)

函数的定义和调用

1.使用function关键词 定义匿名函数

  function(形参(可以省略的 可以有多个)){
    函数体(代码)
  }
  //直接调用 让别人(事件)去调用(自动调用)
  (function(){
    console.log('匿名函数')
  })()

  匿名函数 (声明比较少 他没有复用价值)

2.使用function关键词 定义具名函数 

  function 函数名(形参,形参...){
    函数体(代码)
  }
  //声明 具名函数(第一种)
  function sayHello(){
    console.log('hello')
  }
  sayHello()
  //传递参数
  function sayHello1(name,age){ //形参是形容的参数
    console.log('hello'+name+age)
  }
  sayHello1('李四') //传进的是实参 根据你要的参数个数来传递对应的参数个数
  //调用
  // sayHi() //报错
  // console.log(sayHi); undefined
  //具名函数的变种声明 (第二种)
  var sayHi = function(){
    console.log('hi')
  }
  sayHi()

3.使用new Function方式

  var 函数名 = new Function('形参,形参1','函数体')
  //定义
  var sayBye = new Function('console.log("bye bye!!")')
  //调用
  sayBye()
  //传参
  var sayBye = new Function('username','console.log("bye bye!!"+username)')
  //调用
  sayBye('李四')

在程序执行之前有个预编译过程

  预编译会做的事情

  1.他会声明对应的function和var关键词修饰的变量(开辟内存的操作)
  2.对应的function的内存空间开辟以后他会将对应的代码块放到其中 等待调用
  3.var 修饰的关键词 只会开辟一个空间 并不会进行赋值(默认给他的一个undefined的值)

return关键词

  return 返回对应的数据的 他是在函数内容进行数据返回的(当你调用了return操作后 后面的内容将不再执行)

  如果没有return关键词 返回的一个undefined的值

作用域  

当前一个变量的作用范围 分为局部作用域(在一个函数内声明的 或者是在一段代码块内声明的 他的作用范围就是当前的代码块)

和全局作用域(在对应的全局声明的 他的作用范围就是全局的)

 

函数的arguments(参数数组 参数的集合)

  arguments是一个伪数组(有部分的数组特性)(可以通过length属性对应的长度 [] 下标来访问里面的元素)

函数的嵌套

  函数的嵌套: 函数内部可以再包含其他函数;
  函数之间允许相互调用,也允许向外调用, 但是不可以调用同级函数的嵌套函数;

Dom的简单操作

1.获取对应的标签 (通过id获取)

  document.getElementById('id的属性值')

2.input框的值获取 value属性

  document.getElementById('input框的id').value //得到input框内的值

3.点击事件 onclick

  element.onclick = function(){
  //相关操作
  }

示例

 

递归算法

  递归可以完成所有循环做的事情 (但是递归的效率较低)

递归三要素

  • 找规律
  • 找临界值(没有规律的值)return
  • 自己调自己(在函数内部调用自己的函数)

bfs 广度优先搜索 dfs 深度优先搜索(递归思想)

 

posted on 2022-07-28 20:09  从从从不慌张  阅读(23)  评论(0)    收藏  举报

导航