¿Por qué los resultados varían según la colocación de llaves?

¿Por qué los fragmentos de código a continuación, tomados deEste artículo, produce resultados diferentes debido a un solo cambio en la colocación de llaves?

Cuando la llave de apertura{ está en una nueva línea,test() devolucionesundefined, y "no - se rompió: indefinido" se muestra en la alerta.

function test()
{
  return
  { /* <--- curly brace on new line */
    javascript: "fantastic"
  };
}

var r = test();
try {
  alert(r.javascript); // does this work...?
} catch (e) {
  alert('no - it broke: ' + typeof r);
}

Cuando el aparato ortopédico está en la misma línea quereturn, test() devuelve un objeto y se alerta a "fantástico".

function test()
{
  return { /* <---- curly brace on same line */
    javascript: "fantastic"
  };
}

var r = test();
try {
  alert(r.javascript); // does this work...?
} catch (e) {
  alert('no - it broke: ' + typeof r);
}

Respuestas a la pregunta(6)

Su respuesta a la pregunta