js(学习笔记) ---- 九层之台,起于累土
如何创建一个对象
// 定义一个对象时 浏览器就会分配一块内存
// 属性名:属性值 key: value(键名/值) 键值对
// 对象里存储的内容都是 键值对形式的 id: 100
// 多个属性之间 用逗号隔开
var obj = {
id: 100,
num: '1',
title: '值',
id: 200
}
// 属性名不能有重复 如果有重复的 后面会将前面的覆盖掉
console.log(obj.id) // 100
console.log(typeof obj) // "object"
对象中的操作(增删改查)
查询
// 从对象中获取某个属性 对应的属性值 两种方式
// 对象.属性名
// 对象['属性名']
var info = {
name: 'zzy',
age: 10,
height: '100px'
}
// console.log(info)
// 获取对象里某一个属性
// 1. 对象.属性名(打点方式)
console.log(info.height) // '100px'
console.log(info.name) // 'zzy'
// 2. 对象['属性名']
console.log(info['height']) // '100px'
console.log(info['age']) // '10'
// 注意:获取一个不存在的属性 返回的是 undefined(未定义 未赋值)
console.log(info.text) // undefined
// 创建了一个变量 但没有赋值 它返回的是默认值 undefined
var c
console.log(c)
注意: 第二种方式 中括号里面的属性名需要 加 引号
加引号原因:
中括号里面不加引号 会把这个属性名 当做是一个变量来解析
var o = { 'sex': '女' }
// console.log(o['sex']) // '女'
var n = 'sex'
// js将n当做变量来解析 把所代表的值 放在这儿 让我们用
// console.log(o[n])
// console.log(o['sex'])
增加
var con = { id: 100 }
// 给对象增加一个属性
console.log('增加前', con) // {id: 100}
con.title = '北京'
con['age'] = 2019
console.log('增加后', con) // {id: 100, title: "北京", age: 2019}
修改
跟增加差不多
如果对象里没有这个属性 再进行赋值 就是增加
如果对象里有这个属性 再进行赋值 就是修改
var con = { id: 100 }
console.log('修改前', con); // {id: 100}
con.id = 2019
// con['id'] = 2020
console.log('修改后', con) // {id: 2020}
删除
真删除
var num = {
a: 10,
b: 20,
c: 30
}
// 真删除
// delete 操作符
console.log('删除前', num) // {a: 10, b: 20, c: 30}
delete num.b
console.log('删除后', num) // {a: 10, c: 30}
假删除
var num = {
a: 10,
b: 20,
c: 30
}
// 假删除 (属性还存在 只是属性值 被赋值为 null)
num.b = null
console.log(num) // {a: 10, b: null, c: 30}
循环遍历对象
var obj = {
id: 1,
num: '100'
}
// for in 遍历对象
for (var k in obj) {
console.log(k, obj[k]) // k => 属性名 obj[k] => 属性值
}
----------------------------------------------------------------------------------------------------------------
参考文章&&强烈推荐:布罗利