Con var obtener_teclas = {}
simplemente estás definiendo la variable obtener_teclas
como un objeto vacío de longitud cero.
var obtener_teclas = {}
console.log(typeof(obtener_teclas));
console.log(obtener_teclas);
console.log(Object.keys(obtener_teclas).length);
//Otras formas de crear un objeto vacío
console.log("*****");
var obtener_teclas2 = Object.create(null);
console.log(typeof(obtener_teclas2));
console.log(obtener_teclas2);
console.log(Object.keys(obtener_teclas2).length);
console.log("*****");
var obtener_teclas3 = new Object();
console.log(typeof(obtener_teclas3));
console.log(obtener_teclas3);
console.log(Object.keys(obtener_teclas3).length);
Podrías inicializar el objeto con valores:
var obtener_teclas = {v: "Valor1", v2: "Valor2"};
console.log(typeof(obtener_teclas));
console.log(obtener_teclas);
También puedes añadir valores al objeto a posteriori:
var obtener_teclas = {};
console.log(obtener_teclas);
obtener_teclas.v = "Valor1";
obtener_teclas.v2 = "Valor2";
obtener_teclas.v3 = "Valor3";
console.log(obtener_teclas);
Respecto a var x;
estás creando la variable x
como undefined
.
Si quieres más info sobre declaración de variables en JS te recomiendo esta pregunta
Y aquí más info sobre la creación de objetos.
También échale un vistazo al uso de "use strict"
en la definición de variables