8,前端学习-js-02对象和数组

1. 对象

1.1 基础

object 对象是 复杂数据类型

  • 对象是一个无序的数据集合
  • 数据集合:可以存储多个数据的集合
  • 对象数据的存储方式:键值对
    • 一个键名对应一个值
    • 举个栗子:name:"张三"
      • name是键名, '张三’ 键值

1.2 创建方式

        1. 字面量:

var obj = { }

        2. 内置构造函数:

var obj = new Object()

1.3 注意

对象中的键名只能是字符串(或Symbol)数据类型

对象中的键值可以是任意数据类型

对象中的键名不能重复

对象的书写 {} 就是对象数据,在{}中的键值对就是对象的数据,多个键值对通过逗号分隔

1.4 用法

1. 点语法   obj.x  obj.y

2. 数组关联法 

无序的数据集合

        - 但是键名是数字字符串会按大小排序,不是按写入顺序,数字排前面

2. 数组

2.1 操作数组的方法

- 什么是数组

  + 是一个有序的数据集合

  + 是一个引用数据类型(复杂数据类型/地址数据类型)

- 数组的一个属性

  + length,值是 number 数据类型

  + 可以利用 for 循环来遍历数组

  + 数组里面的每一个成员依靠索引来获取

- 数组常用方法

  + pop() 删除最后一个数据

  + push() 数据添加到最后

  + shift() 删除最前面一个数据

  + unshift() 数据添加到最前面

  + splice() 删除 改变原数组 返回删除元素组成的新数组

  + reverse()

  + sort()

    + 直接使用 sort()

    + sort(function (a, b) { return a - b })

  + join() 拼接 空字符串合并,不传参数默认逗号

  + concat() 合并

  + slice(a,b) 提取,以新的字符串返回,不改变原数组,包前不包后

2.2 冒泡排序

    var arr = [1, 3, 5, 6, 4, 2, 9, 8, 7]

    for (var i = 0; i < arr.length - 1; i++) {
      for (var j = 0; j < arr.length - 1- i; j++) {
        if (arr[j] > arr[j + 1]) {
          var tmp = arr[j]
          arr[j] = arr[j + 1]
          arr[j + 1] = tmp
        }
      }
    }

2.3 选择排序

    var arr = [1, 3, 5, 6, 4, 2, 9, 8, 7]

    for (var i = 0; i < arr.length - 1; i++) {
      var minIndex = i
      for (var j = i + 1; j < arr.length; j++) {
        if (arr[j] < arr[minIndex]) {
          minIndex = j
        }
      }

      if (minIndex !== i) {
        var tmp = arr[minIndex]
        arr[minIndex] = arr[i]
        arr[i] = tmp
      }
    }

3 ES5

3.1 数组的ES5方法

  + indexOf()

    + 查找参数在数组中的索引   不存在则返回-1

  + forEach(function (item, index, arr) {})

  + map(function (item, index, arr) {})

  + filter(function (item, index, arr) {})

  + every(function (item, index, arr) {})

  + some(function (item, index, arr) {})

  + reduce(function(prev,item,index,arr),init)

3.2 字符串

3.2.1 字符串是一个临时包装数据类型

  + 就是在使用的时候回转换成 new 出来的样子(字符串对象)

  + 使用完毕以后有转换回去了

  + length 属性可以使用,值是一个 number 数据类型

  + 可以使用 for 循环遍历

  + 使用索引拿到字符串中的每一个字符

3.2.2 字符串的常用方法

  + charAt()

  + charCodeAt()

  + indexOf()

  + substring()

  + substr()

  + toLowerCase()

  + toUpperCase()

  + split()

  + slice()

  + concat()

4. 数据类型

### 数据类型的存储

  + 基本数据类型存储再栈里面

  + 引用数据类型,数据在堆里面,地址在栈里面

### 数据类型之间的赋值关系

  + 基本数据类型赋值以后两个变量没有关系

  + 引用数据类型赋值以后,两个变量操作的是同一个对象空间

  + 函数的实参和形参之间的赋值也是一种变量赋值关系

5. Math

#### 操作数字的方法

  + random()

  + round()

  + ceil()

  + floor()

  + pow()

  + sqrt()

  + max()

  + min()

  + abs()

  + PI

#### 随机数

  ```javascript

  function fn(a, b) {

    return Math.floor(Math.random() * (b - a + 1)) + a

  }

  ```

#### 保留几位小数

+ toFixed()

  + 返回的是一个字符串

#### 转换进制

  + toString(你转换成多少进制)

  + parseInt(数字,你把数字当成多少进制)

    + 都是转成十进制数字返回

6.Date

#### 操作时间

- 获取一个时间对象

  + new Date()

    + 传递 2 ~ 6 个数字

      - YYYY

      - MM (0 表示1月,11 表示 12月)

      - DD

      - HH

      - mm

      - ss

    + 传递一个字符串的形式

      - `/` || `.` || `-` 链接都可以

      - 小时分钟秒的时候是用 `:` 链接

      - 0 表示一月 11 表示十二月

#### 时间对象的操作方法

  + getFullYear()

  + getMonth()

  + getDate()

  + getHours()

  + getMinutes()

  + getSeconds()

  + getDay()

  + getTime()

- 补充一个设置时间对象的方法

  + setFullYear()

  + setMonth()

  + setDate()

  + setHours()

  + setMinutes()

  + setSeconds()

  + setTime()

- 时间差的思路

  + 获取两个时间点的时间对象

  + 获取到两个时间点的时间戳

  + 时间戳相减

  + 自己通过算数的方式算出多少天多少小时多少分钟多少秒

  • 23
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值