JavaScript 对象 — 后端注释

重点:后端数据处理、API、reduce、符号、解构


1️⃣ 对象字面量

对象banane ka sab se common tareeqa。

1
2
3
4
const user = {
name: "Ali",
age: 22
};
  • {} se 直接对象 banta hai
  • Har baar naya 对象记忆 mein banta hai
1
2
3
const a = {};
const b = {};
a === b // false

2️⃣ 单例对象(概念)

Singleton 语法 nahi模式 hai。

MATLAB:

badi app mein ek hi 对象实例使用 ho

1
2
3
4
5
const config = {
appName: "MyApp"
};

module.exports = config;
  • Har file jo import karegi → 相同对象 Milega
  • 后端我的缓存、配置、数据库连接可以使用hota

3️⃣ 对象键 — 数字与字符串

JavaScript 对象 ki 键 hamesha 字符串 hoti hain

1
2
3
4
const box = {};
box[1] = 100;

console.log(box); // { "1": 100 }

MATLAB:

1
box[1] === box["1"] // true

4️⃣ 括号与点符号

点符号

1
user.name
  • 固定键
  • 简单的访问

括号表示法

1
2
user["name"]
user[key]
  • 动态键
  • 通过访问变量ke

⚠️重要:

1
user[name] // name is a variable, NOT "name"

5️⃣ 对象中的符号

符号 ek 独特的钥匙 hoti hai。

1
2
3
4
5
const mySymbol = Symbol("key");

const obj = {
[mySymbol]: "secret"
};
  • 符号键字符串 nahi hoti
  • 点符号 se 访问 nahi hoti
1
2
obj[mySymbol] // works
obj.mySymbol // undefined

6️⃣ 函数作为对象属性

JavaScript mein 函数 bhi 值 hoti hai。

1
2
3
4
5
const user = {
greet: function() {
console.log("Hello");
}
};

致电 karne ke tareeqay:

1
2
user.greet();
user["greet"]();

7️⃣ 对象解构

对象se直接值nikaalna。

1
2
3
4
5
6
const course = {
name: "JS",
price: 999
};

const { name, price } = course;

解构期间重命名

1
const { courseInstructor: instructor } = course;

MATLAB:

1
course.courseInstructor → instructor

8️⃣ 使用对象减少(最重要🔥)

每个键的总和

1
2
3
4
const totals = payments.reduce((box,p)=>{
box[p.user] = (box[p.user] || 0) + p.amount;
return box;
},{});

逻辑:

  • 琼脂键 pehli dafa aaye → 0 se 开始
  • 琼脂存在 karti ho → 添加 karo

按键分组

1
2
3
4
5
const grouped = logs.reduce((box,l)=>{
if(!box[l.user]) box[l.user] = [];
box[l.user].push(l.action);
return box;
},{});

逻辑:

  • 琼脂阵列存在 nahi → pehle banao
    *菲尔推卡罗

9️⃣ 为什么需要if(!box[key])

1
2
3
if(!box[user]){
box[user] = [];
}

原因:

  • .push() Sirf 数组 pe chalta hai
  • undefined.push() 崩溃卡塔海

10️⃣ 对象与地图

特色 对象 地图
钥匙类型 仅字符串 任何类型
JSON 支持
订单 不可靠 保存
后端使用 API数据 缓存

11️⃣ 后端使用总结

对象后端我使用 hote hain 来:

  • API响应
  • 配置
  • 对数据库数据进行分组
  • 缓存
  • 权限映射

🧠 黄金法则

  • 对象键是字符串
  • 括号表示法计算表达式
  • 减少 = 寄存器更新
  • [] → 分组
  • 0 → 求和

📌 最后的想法

后端对象是关于数据转换,而不是 UI 状态