对象和数组

121 阅读3分钟

对象和数组

一.对象

1.什么是对象?

就是一个数据的集合(复杂数据)

2.js的数据类型?

a.基本数据类型

b.复杂数据类型(对象属于复杂数据类型(引用数据类型))

引用数据类型类型:object function array

3.什么是键值对?

内部存放键值对(也叫key/value; 属性名:属性值)

 var obj={
 name:‘张三’,(逗号间隔)
 age:18 
 }
 冒号左边的是:键名
 冒号右边的是:键值
​
 {} 对象内部存储的是数据
 if(){分支语句的代码}
 for(){循环体}
 function(){函数体}
 {数据(内部数据大部分为基本数据类型)}

4.创建对象

1.字面量的形式

var obj={
name:'张三',
age:'18'
}
console.log(obj);

2.内置构造函数

var obj=new Object()
console.log(obj)

5.对于key的要求

  1. 推荐使用符合变量命名规范和规则
  2. 可以使用数组作为key
  3. 可以使用特殊符号
var obj={
name:'张三',
age:18,
123:'1222',
'@':'特殊符号@',
'#':'特殊符号#'
}
console.log(obj);

6.对象的操作(增删改查)

1.对象的操作方式分为2中

  • 点语法

  • 中括号语法(数组语法)

    2.如何选择两种方式

    • 对象的key符号命名规范的时候
    • 出现纯数字为key或者特殊符号@#我们需要使用中括号语法
    • 当出现变量的时候(想用变量作为key)也需要使用中括号语法
1.点语法
var obj={
name:'张三'
}
//查询(对象.key)
console.log(obj.name);
​
//修改(对象.key=新值)
obj.name='李四'
console.log(obj);
​
//增加(对象.新key=值)
obj.age=18
console.log(obj);
​
//删除(delete obj.key)
delete obj.name
console.log(obj);
2.中括号语法(数组语法)
var obj={
name:'张三'
}
​
//查询(对象['key'])
console.log(obj['name']);
​
//修改(对象['key']=新值)
obj['name']='李四'
console.log(obj);
​
//增加(对象['新key']=值)
obj['age']=18
console.log(obj);
​
//删除 delete  对象['key']
delete obj['name']
console.log(obj)
​

二.数组

数据类型之间的区别

1.存储的区别

  • 基本数据类型:存储在栈内存中
  • 引用数据类型:变量存储在栈内存中,变量内部存储的是指向堆内存的地址(对象实际的值,存储在堆内存中)

2.赋值的区别

a.基本数据类型:是值得传递

可以理解为,将我自身的值复制一份给到另一个变量,后续修改另一个变量时与我自身没有任何关系

b.引用数据类型:是地址的传递

可以理解为,将自身的地址复制一份给到另一个变量,后续修改互相会有影响

3.比较的区别

a.基本数据类型

比较时,是拿变量实际的值,去做对比

b.引用数据类型

比较时,是拿引用地址做对比,判断是不是执行一个地址

4.传参的区别

a.基本数据类型

是值的传递,将自身的值复制一份传递给函数的形参

b.引用数据类型

是地址的传递,将自身的地址复制一份传递给函数的形参