复杂数据类型之函数 对象

函数的创建

  1. 声明式函数

          语法: function 名字() {}
          function: 就是一个声明函数的关键字
          名字: 就是你给这一段空间自定义的一个名字, 命名规则和命名规范同变量名
          (): 存放参数的位置, 现在先不说, 一会详细讲, 必须写
          {}: 就是你存放的一段代码

        2. 赋值式函数
          语法: var 名字 = function () {}
          var: 定义变量的关键字
          名字: 就是我们给这个函数起的一个自定义名称
          =: 赋值
          function: 表示一个函数
          (): 写参数的位置, 必须写, 一会再说时干啥的
          {}: 存放一段代码的
 
 
 
函数的调用
函数的调用
        不管哪种方式定义的函数, 他们的调用方式是一样的

      1. 直接调用
        当你定义好一个函数以后
        如果你想让这个函数内部的代码执行一下
        直接写 -> 函数名()
        函数名: 你要让哪一个空间里面的代码执行
        (): 就是调用的意思

      2. 依赖行为调用
        需要给一个元素绑定一个行为
        在 js 里面获取一个页面元素有一个简单的办法, 就是直接使用 id 名称
          在一个页面里面, 一个元素的 id 名称可以直接被当作一个 js 的变量来使用
          这个 id 名表示的就是这个元素
        暂时添加一个点击行为, 就是 onclick
          元素.onclick -> 表示当点击这个元素的时候
        给他赋值为一个函数名称就可以了
          不需要写小括号, 因为我不是让你直接执行
          而是当点击的时候在执行
 
函数内部的一个特殊的变量, arguments
        在每一个函数内部, 都有一个天生的变量
        不需要我们取定义, 直接就能拿来使用
        这个变量叫做 arguments
        表示所有实参的集合

      详解 arguments
        会把所有的实参按照从左到右的顺序依次排好
        给每一个实参一个编号(索引 / 下标)
        这个编号(索引 / 下标) 是从 0 开始的, 依次递增
        当你需要获取到这里面的某一个的时候
        你只要写 arguments[编号] 就能得到某一个准确的值

        arguments 还有一个属性叫做 length
          表示 arguments 这个集合的长度, 也就是里面有多少个数据
          值是一个 number 数据类型的数字
          如果你想得到这个属性就写 arguments.length

      使用循环遍历整个 arguments 获取到每一个数据
        因为 arguments 的索引(下标) 是按照从 0 开始依次叠加的顺序
        我们的循环刚好也可以给我提供一组有规律的数字
        所以我们可以使用循环的方式来遍历 arguments
 
函数的返回值
        什么是返回值: 也就是一个函数的结果

      例子: 冰箱
        函数: 就是封装一个功能, 冰箱就是封装了一个制冷的功能
        参数: 就是在调用的时候传递, 你向冰箱里面放了什么东西
        返回值: 就是调用完函数得到的结果, 冰箱能给你的一个什么

      例子: parseInt()
        parseInt 是一个 js 内置(自带) 的一个函数
        parseInt() 就是在调用这个函数
        parseInt(10.234) 就是传递的一个参数
        var result = parseInt(10.234)
          result 接收的就是 parseInt 这个函数的返回值
        这个函数里面做的是 把你传递进来的数据转换成数值类型
          然后再返回给你

      再函数里面添加返回值使用 return 关键字
        return 就是再函数里面使用的
        你想让这个函数返回什么, 就写 return 你要返回的数据
 
对象
什么是对象 ?
          是一个复杂数据类型, 专门用来存储数据的
          会给每一个存储的数据起一个名字

        创建对象的方式
          字面量创建
            var obj = {}
          内置构造函数创建
            var obj = new Object()

        操作对象的语法(点语法)
          增: 对象名.你要增加的名字 = 你要增加的值
          删: delete 对象.你要删除的名字
          改: 对象名.你要修改的名字 = 你要修改的值(原先有就是修改, 原先没有就是增加)
          查: 对象名.你要查询的名字

        操作对象的语法(数组关联语法)
          增: 对象名['你要添加的名字'] = 你要添加的值
          删: delete 对象名['你要删除的名字']
          改: 对象名['你要修改的名字'] = 你要修改的值
          查: 对象名['你要查询的名字']

        两种操作语法
          使用的结果没有区别, 互相可以混合着使用
          只是为了实现一个需求的两种语法