javascript的函数

一、函数

  1. 概念 :代码中的工具
  2. 内置函数 :js内部提供的 ①isNaN() ② Number() ③ parseInt() 等等等
  3. 自定义函数 :自己定义,自己使用

二、语法

  1. 定义: function 函数名(){重复执行的代码段}
  2. 调用 :函数名()

三、函数的本质

  1. 定义函数 :就是在内存中开辟空间,存储一段代码进入
  2. 存储的代码的数据类型 :function
  3. 将函数理解为一个特殊的变量
    • 数据 — 一段代码
    • 类型 — function
    • 调用 — 让这段代码执行

四、带参数的函数

  1. 形参 ---- 在定义函数的小括号中,可以放入多个预定义好的变量 ----- 在函数内占位,准备使用
  2. 实参 ---- 给形参赋值,让形参在函数内有具体的数据

五、函数带返回值

当我们调用函数后,需要得到一个结果

就需要在函数内 return 结果

return后面的代码不执行

六、预解析

  1. 代码在执行之前,会先进行解析
  2. 会在所有代码中找 变量的定义 和 函数的定义,找到后将变量的定义和函数定义放在所有代码的最前面
    • 当预解析的变量名和函数名同名 — 保留函数名,忽略掉变量
    • 只会提升定义,不会提升赋值
    • 函数定义会提升,变量赋值一个函数不会当做函数的提升
    • 报错后的代码不执行的
    • 不会执行的代码中有定义,也会提升

七、嵌套和调试

函数 大括号中可以放任意代码

  • 可以有函数定义
  • 可以有函数调用

八、作用域

概念 :起到作用的区域

  1. 全局 — 整个网页 — 定义的变量 — 全局变量 — 作用域是整个网页
  2. 局部 — 函数内 — 定义的变量 — 局部变量 ---- 只能在函数内起到作用

局部可以访问到全局的变量,全局不能访问局部的变量

九、作用域链

概念 :作用域多重嵌套形成的链式结构

  1. 规则1:在任何地方把变量当做数据使用的时候,先在当前作用域中找这个变量的定义, 找到了就使用,找不到就去上级作用域中找,找到了就使用, 找不到就再去上级 作用域中找,。。。,直到全局,全局找到了,就使用全局变量,找不到就报错
  2. 规则2:在任何地方给变量赋值的视时候,先在当前作用域中找这个变量的定义,找到了 就赋值,找不到就去上级作用域中找, 找到了,就赋值,找不到就再去上级作用 域中找…直到全局,全局找到了就给全局变量赋值,找不到就在全局定 义这个变量并赋值

十、递归函数

概念 : 在函数内调用自己

function fn(n) {
    if(n === 1){
            return 1
    }
    return n + fn(n-1)
}

var sum = fn(5)
console.log(sum)

斐波那契

function fn(n) {
    if(n === 1 || n === 2) {
        return 1
    }
    return fn(n-1) + fn(n-2)
}

var num = fn(10)
console.log(num)

十一、事件

  1. 概念 :处理用户在网页中行为的代码

  2. 语法

    标签.on类型 = 函数代码
    
    • 标签:可以直接使用标签的id名在js中代表这个标签
    • 类型
      • 鼠标类
        • 单击 click
        • 双击 dbclick
        • 移入 mouseover
        • 移出 mouseout
      • 键盘类
        • 按下 keydown
        • 抬起 keyup
      • 表单类
        • 获取焦点 focus
        • 失去焦点 blur
        • 状态改变 change
        • 表单提交 submit
      • window — load — 网页中其他资源都加载完成后再加载这个事件中的内容
    • 函数代码
      • 匿名函数
      • 函数名称 ---- 不要调用
  3. 行内写法

    <标签 on类型="函数()/js代码"></标签>
    

十二、对象

  1. 概念 :复杂的数据 — 一个空间中存储多个数据

  2. 定义

    var obj = {}
    var obj = new Object()
    
  3. 定义有数据的对象 — 键值对组成

    • 键 — 本质都是字符串
      • 一般不加引号
      • 当键中包含连字符的时候,就必须加引号
    • 值 — 什么类型都可以
  4. 基本操作

    • 访问

      • 对象.属性名
      • 对象[‘属性名’]
    • 设置

      • 对象.属性名 = 值
      • 对象[‘属性名’] = 值

      对象中的键是唯一的

      设置的属性在对象中存在了 — 修改值

      设置的属性名在对象中还不存在 — 新增键值对

    • 删除

      • delete 对象.属性名
      • delete 对象[‘属性名’]
  5. 遍历

    将对象中的每个键值对都经历一次 ----

    for(var 变量 in 对象) { 变量代表每个键 }
    
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值