模块 3 · 第 2 课(共 4)课程中的10/32~10 min
模块课程(2/4)
对象:键值映射
JS 中的对象是键→值对的无序集合。
键是字符串(或 Symbol),值可以是任何内容:数字、字符串、
数组、其他对象、函数。它是最常用的数据结构
语言:域中的每个“记录”通常都是一个对象。
JS
const utente = {
nome: 'Anna',
eta: 28,
attivo: true,
ruoli: ['admin', 'editor'],
};阅读属性:点与括号
有两个等效的符号:
JS
utente.nome; // 'Anna' (dot — the normal form)
utente['nome']; // 'Anna' (bracket — equivalent)
// Brackets are MANDATORY when:
// 1) the key is not a valid identifier
const tag = { 'codice-fiscale': 'ABC123' };
tag['codice-fiscale']; // OK
// tag.codice-fiscale; // syntax error
// 2) the key is computed (variable/expression)
const campo = 'eta';
utente[campo]; // 28缺少属性返回 undefined,没有错误:
JS
utente.telefono; // undefined添加、修改、删除
JS
const u = { nome: 'Anna' };
u.eta = 28; // adds
u.nome = 'Anna B.'; // modifies
delete u.eta; // removes the propertydelete 是一个关键字。这将是一个罕见的用例:大多数
当你想要生成一个没有该键的 新 对象时(我们会看到这个
与传播)。
简写:像变量一样命名的键
当键名与变量名匹配时,可以省略重复:
JS
const nome = 'Anna';
const eta = 28;
const u1 = { nome: nome, eta: eta }; // explicit form
const u2 = { nome, eta }; // shorthand, equivalent检查财产的存在
三个选项,按优先顺序排列:
JS
'nome' in utente; // true ← in operator
utente.nome !== undefined; // true ← works almost always
Object.hasOwn(utente, 'nome'); // true ← modern, safe尝试一下
锻炼#js.m3.l2.e1
尝试:0加载中...
创建对象 user = { name: 'Sara', Age: 22 },然后添加设置为 true 的 'active' 属性并返回该对象作为最后一个表达式。
正在加载编辑器...
显示提示
您可以使用点符号在事后添加属性。
3 次尝试后可用的解决方案
复习练习
锻炼#js.m3.l2.e2
尝试:0加载中...
给定 `product = { code: 'A1', Price: 9.9 }` 和字符串 `key = 'price'`,使用括号表示法返回价格(最后一个表达式的计算结果必须为 9.9)。
正在加载编辑器...
显示提示
使用括号,您可以传递变量作为键。
3 次尝试后可用的解决方案