JavaScript:对象、数组

对象的操作


增 create 在对象内 增加一个键值对
删 delete 在对象内 删除一个键值对改 update 修改 对象内键值对的数据
查 read select 访问 对象中的 键值对
  1. 点语法 .

  1. 增 对象名.键名 = 值; // 对象中没有这个键, 给这个新的键赋值 = 增加一个键值对

  1. 删 delete 对象名.键名;

  1. 改 对象名.键名 = 新值; // 这个键一定是已经存在的键 然后重新赋值

  1. 查 对象名.键名

  1. 如果有这个键 那么就输出这个键对应的 值

  1. 如果没有这个键 那么就是undefined

  1. 数组语法 []

  1. 增 对象名['键名'] = 值; // 这个键不存在 给一个新的键赋值

  1. 删 delete 对象名['键名']

  1. 改 对象名['键名'] = 值;

  1. 查 对象名['键名']

if 中 写条件 比如判断 键是否存在 用数组语法

区别:

1. 当键的名字 满足标识符的命名规则和规范 它俩没有区别

2. 当键的名字是纯数字 或者里边有特殊字符,只是使用数组的语法方式

进行增删改查

3. 里边涉及到变量 把键的名字赋值给 变量 ,然后对象通过变量 拿到 指定的值

只能使用数组的语法方式 中括号内也不要加单引号

对象的遍历


  1. 查看是否有指定的键 in

  1. 把键或者值或者键值对挨个取出来 for in

in 关键字

'字符串' in 对象名 => 一定是一个布尔类型

true 表示 对象 有这个键

false 表示 对象没有这个键

in 只能判断 键是否存在于 对象中 不能判断 某个值是否存在于 对象中

for .. in 循环

for(var 变量 in 对象名){

// 多少个键值对 循环多少次

// 每次循环 变量中存的是对象的 键

// 每次循环 对象名[变量名] 键对应的值

}

基本数据类型和 引用数据类型


赋值的区别:

1 . 基本数据类型 赋值 会在栈内存开辟一个新的空间 两个空间独立

两个变量就没有任何关系了

2. 引用数据类型赋值 因为 引用数据的名字在栈内存 赋值也会在栈内存开辟一个新的空间 两个栈内存的空间同时指向一个堆内存空间 所以 一个变量进行修改 另外一个 也跟着改变

不同数据类型的存储 :

基本数据类型存在栈内存中

引用数据类型 的数据本体在堆内存 名字在栈内存 栈内存的空间存着堆内存空间的地址

https://pythontutor.com/javascript.html 可视化 赋值的过程

数组


一个变量只能存一个值  
我们想 把 1 'hello' true 等放到一个变量 不能放
但是我们可以把 1 'hello' true 打包到一个地方 然后再放变量
打包的地方 就是数组
数组 也是js 一个复杂的数据类型 Array
也是 个盒子 盒子中放着数据
这是个有序的数据集合
有序: 每次打开顺序一样 保持不变
无序: 每次打开顺序可能不跟写的一样
不同的数据类型可以放到数组中
建议 数组中放同样的数据类型

创建数组

  1. 字面量的创建方式

  1. var 数组名 = []; // 创建一个空数组 经常用

  1. 创建带有数据的数组 var 数组名 = [数据1,数据2,数据3,...数据n];

  1. 内置构造函数

  1. var 数组名 = new Array(); 创建空数组

  1. var 数组名 = new Array(数据1,数据2,数据3,...数据n); // 创建有数据的数组

  1. var 数组名 = new Array(数字); // 仅有一个数字 创建一个指定长度的数组

长度: 数组内有多少个数据

数组中数据的排列

数组是有序的集合
按照顺序排列的
计算机 顺序 从 0开始
生活中的顺序 从 1开始
  1. 每个数据都有自己的序号

  1. 这个序号叫做 索引 或者叫做下标

  1. 索引从 0开始 下标0是第一个

  1. 数组的最后一个 必然是长度-1

数组的属性 会用

  1. length属性

<div id="test"> id 是div的属性

属性 后边不加()

每个数组 默认就带着length属性 可以读写

length属性表示 数组的长度 也就是数组中有多少个数据

读 只看

语法:数组.length

结果: 拿到数组的长度

写 增删改

数组.length = 数字

1. 如果你设置的数字 小于length 多出来的数据会从末尾开始删除

2. 如果你设置的数字 等于length 相当于没设置

3. 如果你设置的数字 大于length 不够的部分用empty 补齐

  1. 索引

数据在数组中的一个序号
从0开始 逐步+1

数组[索引]

得到的结果:

如果存在这个索引 得到索引位置上的数据

如果不在这个索引 会得到undefined

数组[索引] = 值

得到的结果的几种情况

1. 如果有这个索引 那么就把该索引所在的位置数据替换

2. 如果我们设置的索引的大小跟数组的长度一样,就是向数组追加一个元素

var arr= [1,2,3,4] arr[4] = 5

3. 如果这个索引大于length 中间空余出来的位置 用empty 补齐

var arr= [1,2,3,4]

arr[10] = 5 => 1 2 3 4 empty empty ... 5

数组的遍历 非常重要

  1. for in 遍历

对象的遍历 for(var k in 对象){}

可以用来遍历数组

for(var k in 数组名){}

k 存的是数组的索引

  1. 根据索引 进行遍历

     for(var i=0;i<数组.length;i++){

console.log(数组[i]);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值