对象(object):JavaScript里的一种数据类型,用来描述某个事物
可以理解为一种无序的数据集合(数组是有序的数据集合)。
对象的使用:
1.对象声明语法
let 对象名 ={}
例如:
//声明了一个person的对象
let person = {}
2.对象使用
对象由属性和方法组成。
属性:信息或特征(名词),如颜色、重量等...
let 对象名={
属性名:属性值,
方法名:函数
}
//例如:声明对象
let obj={
uname:'pink老师',
age:18,
gender:'女'
}
属性都是成对出现,包括属性名和值,他们之间使用英文 : 分隔
多个属性之间使用英文 , 分隔
属性就是依附在对象上的变量(外面是变量,对象是属性)
属性名可以使用 "" 或 '',一边情况下可以省略,除非名称遇到特殊符号,如空格、中横线等
方法:数据行为性信息,功能或行为(动词)其本质是函数,如发短信、玩游戏等...
let person = {
name : 'andy',
//方法1
sayHi : function(){
document.write('hi~~')
},
//方法2
dance : function(){}
}
//方法的调用
person.sayHi()
方法是由方法名和函数两部分组成,他们之间使用 : 分隔
多个属性之间使用英文 , 分隔
方法是依附在对象中的函数(外面是函数,里面是方法)
方法名可以使用 ""或 '' ,一般情况下省略,除非名称遇到特殊符号,如空格、中横线等
练习:
声明一个对象,包含如下信息:
商品对象名字:goods
商品名称命名:name
商品编号:num
商品毛重:weight
商品产地:address
<script>
let obj = {
name:'小米10青春版',
num:'100023456624',
weight:'0.55kg',
address:'中国大陆'
}
console.log(obj); //打印obj
</script>
3.对象中操作数据的增、删、改、查语法
(1)属性-查
语法:对象名.属性
即获得对象里面的属性值。
例如:
console.log(obj.address)
console.log(obj.name)
(2)属性-改
语法:对象名.属性 = 新值
例如:将上述obj对象中的name修改成“小米9青春版”
let obj = {
name:'小米10青春版',
num:'100023456624',
weight:'0.55kg',
address:'中国大陆'
}
obj.name = '小米9青春版'
console.log(obj.name) //修改商品名为'小米9青春版'
console.log(obj)
(3)属性-增
语法:对象名.新属性 = 新值
例如:在obj对象中新增一个price属性
let obj = {
name:'小米10青春版',
num:'100023456624',
weight:'0.55kg',
address:'中国大陆'
}
obj.price='3900元' //新增一个price属性
console.log(obj)
(4)属性-删(作为了解)
语法:delete 对象名.属性
例如:删除obj对象中的weight属性
let obj = {
name:'小米10青春版',
num:'100023456624',
weight:'0.55kg',
address:'中国大陆'
}
delete obj.weight //删除weight属性
console.log(obj) //打印出的obj中不再有weight值
4.遍历对象
for遍历对象问题:
对象没有像数组一样的length属性,所以无法确定长度
对象里面是无序的键值对,没有规律,不像数组里面有规律的下标
<script>
//for in 不推荐遍历数组
//let arr = ['pink','red','blue']
//for (let k in arr){
// console.log(k) //数组的下标 索引值 但是是字符串'0''1''2'
// console.log(arr[k]) //arr[k]
//}
//1.遍历对象 for in
let obj = {
uname: 'pink老师,
age: 18
gender: '男'
}
//2.遍历对象
for (let k in obj) {
console.log(k) //属性名 'uname' 'age'
console.log(obj.[k]) //输出属性值 obj[k]
</script>
注:for in语法中k是一个变量,在循环的过程中依次代表对象的属性名
由于k是变量,所以必须使用 [ ] 语法解析
k是获得对象的属性名,对象名 [k] 是获得属性值