数组 数组的索引、数组的常用方法 、数据类型之间存储的区别

阅读: 评论:0

数组 数组的索引、数组的常用方法 、数据类型之间存储的区别

数组 数组的索引、数组的常用方法 、数据类型之间存储的区别

数组

  • 什么是数组?
  • 字面理解就是数字的组合
  • 数组就是一组数据的集合,存储再在单个变量下的优雅方式

代码书写:

[1,2,3,'hello',true,false]   //这个东西就是一个数组,存储着一些数据的集合

数据类型的分类

数组也是数据类型的一种

之前学过知道把所有的数据类型分为两大类基本数据类型复杂数据类型

基本数据类型回顾:

number/string/boolean/undefined/null  //这些都是基本数据类型

复杂数据类型回顾:

object/function/array/...   // 这些都是复杂数据类型

创建一个数组

  • 首先要明白数组就是一个 []
  • [] 里面存储着各种各样的数据,按照顺序依次排好

字面量创建一个数组

  • 直接使用 [] 的方式创建一个数组
// 创建一个空数组
var arr1 = []// 创建一个有内容的数组
var arr2 = [1, 2, 3]

内置构造函数创建数组

  • 使用 js 的内置构造函数 Array 创建一个数组
// 创建一个空数组
var arr1 = new Array()// 创建一个长度为 10 的数组
var arr2 = new Array(10)// 创建一个有内容的数组
var arr3 = new Array(1, 2, 3)

数组的 length

  • length: 长度的意思

  • length 就是表示数组的长度,数组里面有多少个成员,length 就是多少

    // 创建一个数组
    var arr = [1, 2, 3]console.log(arr.length) // 3
    

数组的索引

索引,也叫做下标,是指一个数组里面排在第几个位置

需注意:在所有语言里面,索引都是从0开始的

// 创建一个数组
var arr = ['hello', 'world']
// 上面这个数组中,第 0 个 数据就是字符串 hello,第 1 个 数据就是字符串 world

获取索引:

var arr = ['hello', 'world']console.log(arr[0]) // hello
console.log(arr[1]) // world

数据类型之间存储的区别(重点)

  • 既然我们区分了基本数据类型和复杂数据类型
  • 那么他们之间就一定会存在一些区别
  • 他们最大的区别就是在存储上的区别
  • 我们的存储空间分成两种
  • 栈: 主要存储基本数据类型的内容
  • 堆: 主要存储复杂数据类型的内容

基本数据类型在内存中的存储情况

  • var num = 100,在内存中的存储情况

  • 直接在 栈空间 内有存储一个数据

复杂数据类型在内存中的存储情况

  • 下面这个 对象 的存储

    var obj = {name: 'Jack',age: 18,gender: '男'
    }
    
复杂数据类型的存储
  1. 在堆里面开辟一个存储空间
  2. 把数据存储到存储空间内
  3. 把存储空间的地址赋值给栈里面的变量

数据类型之间的比较

  • 基本数据类型是之间的比较
var num = 1
var str = '1'console.log(num == str) // true
  • 复杂数据类型是 地址 之间的比较
var obj = { name: 'Jack' }
var obj2 = { name: 'Jack' }console.log(obj == obj2) // false

数组常用方法

1.push()

语法:数组.push(数据)

作用:将数据追加到数组的末尾

返回值:追加数据后数组最新的长度

代码书写:

var arr = [1, 2, 3]// 使用 push 方法追加一个元素在末尾
arr.push(4)console.log(arr) // [1, 2, 3, 4]

2.pop()

语法:数组.pop()

作用:删除数组 最后一个 数据

返回值:被删除掉的数据

代码书写:

var arr = [1, 2, 3]// 使用 pop 方法删除末尾的一个元素
arr.pop()console.log(arr) // [1, 2]

3.unshift()

语法:数组.unshift(数据)

作用:将数据添加到数组的最前

返回值:添加数据后数组的最新的长度

代码如下:

var arr = [1, 2, 3]// 使用 unshift 方法想数组的最前面添加一个元素
arr.unshift(4)console.log(arr) // [4, 1, 2, 3]

4.shift()

语法:数组.shift()

作用:删除数组 最前面一个 数据

返回值:被删除掉的数据

代码如下:

var arr = [1, 2, 3]// 使用 shift 方法删除数组最前面的一个元素
arr.shift()console.log(arr) // [2, 3]

语法:数组.reverse()

作用:将数组 反转

返回值:被反转后的数组

var arr = [1, 2, 3]// 使用 reverse 方法来反转数组
verse()console.log(arr) // [3, 2, 1]

6.splice()

语法:数组.splice(开始索引,多少个,要插入的数据)

开始索引:默认是0多少个:默认是0要插入的数据:默认是没有

作用:删除数据中若干数据,并选择是否插入新的数据

返回值:以新数组的形式返回被删除的数据

7.sort()

语法: 数组.sort()

   数组.sort(function(a,b){return a - b })数组.sort(function(a,b){return b - a })

作用:将数组进行排序

返回值:排序好的数组

var arr = [2, 3, 1]// 使用 sort 方法给数组排序
arr.sort()console.log(arr) // [1, 2, 3]

8.join()

语法: 数组.sort(连接符)

作用:将数组用连接符连接成为一个字符串

返回值:连接好的字符串

语法:数组.concat([其他数组])

作用:将其他数组和数组拼接在一起

返回值:拼接好的新数组

var arr = [1, 2, 3]// 使用 concat 方法拼接数组
var newArr = at([4, 5, 6])console.log(arr) // [1, 2, 3]
console.log(newArr) // [1, 2, 3, 4, 5, 6]

10.slice()

语法:数组.splice(开始索引,结束索引)

开始索引:默认是0结束索引:默认是数组长度

作用:截取 数组中的某些数据

返回值:以新数组的形式返回截取出来的数据

11.indexOf()

语法:数组.indexOf(数据)

作用:查找数据在数组中的索引位置

返回值:有该数据,返回第一次出现的索引位置

没有该数据,返回-1

12.lastIndexOf()

  语法:​          => 数组.lastIndexOf(数据)​          => 数组.lastIndexOf(数据, 开始索引)​        + 作用: 从后向前检索该数据第一次在该数组内出现的位置​        + 返回值:​          => 如果在数组内找到了该数据, 那么就是该数据第一次出现的索引位置​          => 如果在数据内没有找到该数据, 那么就是 -1

本文发布于:2024-01-30 20:44:57,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170661871722715.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数组   数据类型   索引   区别   常用
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23