对象和数组
一.对象
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的要求
- 推荐使用符合变量命名规范和规则
- 可以使用数组作为key
- 可以使用特殊符号
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.引用数据类型
是地址的传递,将自身的地址复制一份传递给函数的形参