0
点赞
收藏
分享

微信扫一扫

JS数据类型-引用类型

Fifi的天马行空 2022-02-25 阅读 171

JS数据类型-引用类型

···

1. 数组

1.1 数组基本语法

1.1.1 数组介绍

  • 作用:一个数组变量可以存储多个数据
  • 数组内存的组成
    1. 元素:数组内的数据
    2. 下标:数据在数组中的位置(下标不会跳跃)
    3. 长度:元素的数量

1.1.2 数组语法

<script>
        let names = ['皮卡丘', '卡比兽', '哥德小姐', '冰鬼护', '黏美露龙']
        console.log(names)
        console.log(names[2]) //结果是对应数组下标 [2]的哥德小姐
        console.log(names.length) //结果是5,数组长度
    </script>

1.1.3 数组遍历

 let names = ['皮卡丘', '卡比兽', '哥德小姐', '冰鬼护', '黏美露龙']
        for (let i = 0; i < names.length; i++) {
            console.log(names[i])
        }

1.2 数组操作

1.2.1查询和修改

<script>
        let arr = [11, 22, 33, 44, 55]
        // 查询(数组取值)
        console.log(arr[0]) //下标存在,则会获取元素
        console.log(arr[6]) //下标不存在,则会获取undefined

        // 修改(数组赋值)
        arr[1] = 88 //下标存在,为修改[下标]对应的值
        arr[5] = 99 //下标不存在,为新增一个元素
        arr[7] = 789 //跳过一个位置,新增元素,则中间[6]会出现空值
        console.log(arr)
    </script>

1.2.2 新增元素

<script>
        // 新增元素有3个方法
        let arr = [11, 22, 33, 44, 55]
        // 方法一:添加至末尾
        arr.push(66, 77)
        // 方法二:添加至开头
        arr.unshift(-00, 00)
        // 方法三:数组赋值
        arr[9] = 88
        console.log(arr)
    </script>

1.2.3 删除元素

<script>
        let arr = [11, 22, 33, 44, 55, 66, 77, 88]
        // 删除最后一个元素
        arr.pop()
        // 删除第一个元素
        arr.shift()
        // 删除指定元素
        //arr.splice(起始位置,删除数量) 删除从起始位置开始删除
        // 若删除数量不写,则直接从起始位置到最后全部删除
        arr.splice(3, 5) 

        // 前面有删除的元素,则会先执行前面的
        // 下标对应的数值也会跟着改变
        // 从而影响下面删除元素的位置
    </script>

1.3 数组应用

1.3.1 数组求和

<script>
       // 求一组数据总和
        let arr = [11, 22, 33, 44, 55, 66, 77, 88]
        let sum = 0 //声明变量存储结果
        // 遍历数组
        for (let i = 0; i < arr.length; i++) {
            console.log(arr[i])
            // 累加
            sum += arr[i]
        }
        console.log(sum, sum / arr.length)
    </script>

1.3.2 数组求最大值和最小值

<script>
      let arr = [110, 212, 133, 44, 155, 66, 77, 55]
        // 先设最大值为第一个
        let max = arr[0]
        // 设最小值为第一个
        let min = arr[0]
        // 遍历一边数组
        for (let i = 0; i < arr.length; i++) {
            console.log(arr[i])
            // 比较大小
            if (arr[i] > max) {
                max = arr[i]
            } else if (arr[i] < min) {
                min = arr[i]
            }
        }
        console.log(max, min)
    </script>

1.3.3 筛选数组

<script>
       let arr = [110, 212, 133, 44, 155, 66, 77, 55]
        let newArr = [] //声明一个空数组,用来放筛选出来的元素
        //先遍历一边 看看有没有符合的值
        for (let i = 0; i < arr.length; i++) {
            // console.log(arr[i])
            // 筛选
            if (arr[i] > 100) {
                console.log(arr[i]) //显示那些值
                newArr.push(arr[i]) //把值都往后塞
            }
        }
        console.log(newArr)
    </script>

···

2. 函数

2.1 函数

2.1.1 函数语法

2.1.2 函数传参

  • 函数参数

    1. 形参:

    2. 实参

    3. 传参
      调用者传递数据给函数,即给函数名里的变量赋值


    4. 函数接收传递过来的值
      function 函数名(形式参数){ 函数体代码 }

  • 函数传参的实质:实参给形参赋值的过程
    (1)函数传参是按照传入顺序一一赋值
    (2)函数每一次调用传参过程都是独立的,互不影响
    (3)函数 形参数量 和 实参数量 可以不一致的(没有写就是undefined,写了就有值)

 //需求:声明一个函数,可以求任意两个数字的和
        function sum(num1, num2) {
            console.log(num1)
            console.log(num2)
            console.log(num1 * num2)
        }

        sum(99, 100) //给num1 和 num2 赋值

2.1.3 函数默认参数(逻辑短路)

  • 逻辑短路运算:
    1. &&:一假则假
      左边式子判定为假,则无条件返回左边式子的,否则返回 右边式子的值

    2. || :一真则真

      左边式子判定为真,则无条件返回左边式子的,否则返回右边式子的值

2.1.4函数返回值

  • 函数返回值 : 函数 传递数据 给调用者

      	1. 函数通过return将值传出
       function 函数名(变量名){
        		return 值
        		}
     	2. 调用者接收return 的值
       let 新变量名 = 函数名(给变量名赋的值)
       document.write(新变量名)  //打印
    

在这里插入图片描述

···

3. 对象

3.1 对象

3.1.1 对象语法

let 对象名 = {
属性名:'属性值'
属性名:function(){}  //函数类型
}
console.log(对象名.属性名)   //完成取值

函数没有返回值,调用函数的结果是undefined
所以要显示对象中的函数中的内容,代码为obj.food()

3.1.2 对象操作(查询对象属性)

  1. 查询对象属性的特点

    (1)属性名存在:则能获取属性值
    (2)属性名不存在:则获取undefined

  2. 对象取值的两种方法

    (1)点语法:对象名.属性名

    (2)[]语法:对象名[‘属性名’]

3.1.3 对象操作(新增与修改)

  1. 修改属性

    对象名.属性名=赋值

  2. 新增属性(和增是同样的语法)

    (1)如果对象属性名存在,则是修改属性
    (2)如果对象属性名不存在,则是新增属性

  3. 删除属性(了解)
    delete 对象名.属性名

3.1.4 对象遍历

  • 遍历对象:for-in循环 (专用于遍历对象)
    for(let key in 对象名){ 对象名[key] }
let obj = {
      name: '张XX',
      age: 23,
      gender: '男',
      hobby: ['学习', '学习', '学习'],
      food: function () {
        console.log('potato')
      },
      somebody: {
        name: 'XXX'
      }
    }

    for (let key in obj) {
      console.log(key) // 循环变量 显示的所有的属性名
      console.log(obj[key]) // 显示所有的属性名和属性值
    }

3.1.5 内置对象

内置对象:由js作者提前写好的对象,直接拿来用即可
Math:数学对象

举报

相关推荐

0 条评论