<sectionid="description"> En su forma más básica, los objetos son solo colecciones de <dfn>pares clave-valor</dfn> , o, en otras palabras, fragmentos de datos asignados a identificadores únicos que llamamos <dfn>propiedades</dfn> o <dfn>claves</dfn> . Veamos un ejemplo muy simple: <blockquote> dejar FCC_User = { <br> nombre de usuario: 'awesome_coder', <br> seguidores: 572, <br> puntos: 1741, <br> Proyectos completados: 15 <br> }; </blockquote> El código anterior define un objeto llamado <code>FCC_User</code> que tiene cuatro <dfn>propiedades</dfn> , cada una de las cuales se <code>FCC_User</code> a un valor específico. Si quisiéramos saber la cantidad de <code>followers</code> tiene <code>FCC_User</code> , podemos acceder a esa propiedad escribiendo: <blockquote> deje userData = FCC_User.followers; <br> // userData es igual a 572 </blockquote> Esto se llama <dfn>notación de puntos</dfn> . Alternativamente, también podemos acceder a la propiedad entre paréntesis, así: <blockquote> deja userData = FCC_User ['followers'] <br> // userData es igual a 572 </blockquote> Tenga en cuenta que con la <dfn>notación de corchetes</dfn> , incluimos a los <code>followers</code> entre comillas. Esto se debe a que los corchetes realmente nos permiten pasar una variable para que sea evaluada como un nombre de propiedad (sugerencia: ten esto en cuenta para más adelante). Si hubiéramos pasado a los <code>followers</code> sin las comillas, el motor de JavaScript habría intentado evaluarla como una variable, y un <code>ReferenceError: followers is not defined</code> . </section>
<sectionid="instructions"> Usando la misma sintaxis, también podemos <em><strong>agregar nuevos</strong></em> pares clave-valor a los objetos. Hemos creado un objeto de <code>foods</code> con tres entradas. Agregue tres entradas más: <code>bananas</code> con un valor de <code>13</code> , <code>grapes</code> con un valor de <code>35</code> y <code>strawberries</code> con un valor de <code>27</code> . </section>
testString: 'assert(typeof foods === "object", "<code>foods</code> is an object");'
- text: El objeto <code>foods</code> tiene una clave <code>"bananas"</code> con un valor de <code>13</code>
testString: 'assert(foods.bananas === 13, "The <code>foods</code> object has a key <code>"bananas"</code> with a value of <code>13</code>");'
- text: El objeto <code>foods</code> tiene una clave <code>"grapes"</code> con un valor de <code>35</code>
testString: 'assert(foods.grapes === 35, "The <code>foods</code> object has a key <code>"grapes"</code> with a value of <code>35</code>");'
- text: El objeto de <code>foods</code> tiene una clave <code>"strawberries"</code> con un valor de <code>27</code>
testString: 'assert(foods.strawberries === 27, "The <code>foods</code> object has a key <code>"strawberries"</code> with a value of <code>27</code>");'
- text: Los pares clave-valor deben configurarse usando notación de punto o corchete
testString: 'assert(code.search(/bananas:/) === -1 && code.search(/grapes:/) === -1 && code.search(/strawberries:/) === -1, "The key-value pairs should be set using dot or bracket notation");'