- 属性
- 对象中可以存储多个各种类型的数据,对象中存储的数据成为属性
- 添加属性或修改属性值:对象.属性名 = 属性值
- 读取属性:对象.属性名,如果读取对象中没有的属性返回undefined
- 删除属性:delete 对象.属性名
| let obj = Object(); |
| obj.name = "孙悟空"; |
| obj.age = 18; |
| obj.gender = "男"; |
| |
| obj.name = "Tom sun"; |
| |
| delete obj.name; |
| console.log(obj.name); |
- 字面量
- 直接使用{}创建对象
- 使用{}创建的对象可以直接向对象中添加属性
- 语法:
{
属性名:属性值,
[属性名]:属性值,
......
}
| let mySymbol = Symbol(); |
| let obj = { |
| name: "孙悟空", |
| age: 18, |
| ["gender"]: "男", |
| [mySymbol]: "特殊的属性", |
| |
| hello: { |
| a: 1, |
| b: true |
| }, |
| |
| sayHello: function(){ |
| alert("hello"); |
| } |
| }; |
- 枚举属性
- 枚举属性,指将对象中的所有的属性全部获取
- for-in语句,语法:
for(let propName in 对象){
语句......
}
- 有几个属性就会执行几次,每次执行时,都会将一个属性名赋值给我们所定义的变量
注意:并不是所有的属性都可以枚举,比如:使用符号添加的属性
| let obj = { |
| name:"孙悟空", |
| age:18, |
| gender:"男", |
| address:"花果山", |
| [Symbol()]:"测试的属性" |
| }; |
| for(let propName in obj){ |
| console.log(propName, obj[propName]); |
| } |
- 可变类型
- 对象属于可变类型
- 对象创建完后,可以任意添加删除修改对象中的属性
- 两个对象进行相等或全等比较时,比较的是对象的内存地址
- 两个变量指向同一个对象时,通过一个变量修改对象时,对另外一个变量也会产生影响
| let obj = Object(); |
| obj.name = "孙悟空"; |
| obj.age = 18; |
| let obj2 = obj; |
| obj2.name = "猪八戒"; |
| console.log(obj.name); |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!