JavaScript: Cómo consolas navegador muestra los valores clave de objeto

votos
2

Desde la consola de Chrome:

> myParam = {test: test value}    
> myFunc = function(x) { myParam[x] = x; }

> myFunc(func value)
> myParam
{test: test value, func value: func value} // (a) question

> myFunc(2)
> myParam
{2: 2, test: test value, func value: func value}

> myFunc()
> myParam
{2: 2, test: test value, func value: func value, undefined: undefined} // (b) question

esta es la última versión de Chrome al día (69.0.3497.100) Por favor explicar cómo, en JavaScriptintroducir

a) se puede crear un miembro de objeto que contiene espacios ( valor myParam.func)
b) puede ser creado un miembro de objeto indefinido ( myParam.undefined)
c) para la (b) caso, es el indefinido realmente indefinido o simplemente una cadena indefinido?


PD. Gracias a la observación de la @ de ryanpcmcquen, la siguiente PS introducir


PPS. ¿Podría confirmar mi suposición de que esta es una de Google Chrome v (69.0.3497.100) error de visualización de la consola si las cadenas no se muestran como cuerdas , entre paréntesis y en color rojo?


PPS.
Sólo Firefox parece mostrar correctamente las claves de cadena:

Chrome, Opera Firefox Edge MS IE
introducir

introducir

introducir

introducir

Publicado el 19/09/2018 a las 17:04
fuente por usuario
En otros idiomas...                            


4 respuestas

votos
3

Considerando objeto foo:

var foo = {};

a) se puede crear un miembro de objeto que contiene espacios ( "valor myParam.func")

// You have to use square bracket notation when
// declaring properties with spaces.
foo['func value'] = 'Whatever you want.';

b) se puede crear un elemento de "indefinido" objeto ( "myParam.undefined")

// Keyword undefined:
foo[undefined] = undefined;
// String 'undefined':
foo['undefined'] = 'undefined';

c) para el caso (b), es el "indefinido" realmente "indefinido" o simplemente una cadena "indefinido"?

Depende de cómo se defina. En la captura de pantalla que es la palabra clave undefinedpara el valor de la propiedad, y la cadena 'undefined'de la clave.

Para verificar los tipos dentro de su objeto puede ejecutar:

Object.keys(foo).map(key => typeof key);
Object.values(foo).map(value => typeof value);
Respondida el 19/09/2018 a las 17:15
fuente por usuario

votos
0

Vamos a responder a sus preguntas.

a) se puede crear un miembro de objeto que contiene espacios ( "valor myParam.func")

const myParam = {}
myParam["func value"] = 'serge';
console.log(myParam)

, pero un nombre de propiedad que tiene un espacio o un guión, o que comienza con un número sólo se puede acceder usando la notación de corchetes

b) se puede crear un elemento de "indefinido" objeto ( "myParam.undefined")

. Un nombre de propiedad de objeto puede ser cualquier cadena válida JavaScript, o cualquier cosa que se puede convertir en una cadena, incluyendo la cadena vacía

const myParam = {};
myParam.undefiend = 'serge';
console.log(myParam)

c) para el caso (b), es el "indefinido" realmente "indefinido" o simplemente una cadena "indefinido"?

Creo que es la cadena "indefinido"

Respondida el 19/09/2018 a las 17:17
fuente por usuario

votos
0

Esta es una de las bellezas de JavaScript.

a) Podemos crear claves de objeto con espacios, ya que las claves de objetos pueden ser cadenas. cuando se quiere ver el valor de objeto cuyas claves son cuerdas que tiene que hacer que de la manera siguiente

var a = {
  'my key': 'my key'
  yourKey: 'your key'
}
a['my key'];
a.yourKey

b) En JavaScript indefinido es un tipo de datos, por lo que es perfectamente legal tener variable cuyo valor no está definido

c) Realmente no está definido. Ver más aquí: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined

Respondida el 19/09/2018 a las 17:16
fuente por usuario

votos
-3

C respuesta para "indefinido" por lo general hacia el valor "nulo", que puede console.log (nulo) y se puede encontrar el indefinido

Respondida el 19/09/2018 a las 17:09
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more