Buenas,
Tienes algunos errores de falta de atención o por copiar demasiado rápido, byId y byTag no son funciones nativas de javascript, entre otras cosas:
Este código funciona correctamente!<html>
<head>
<title>form</title>
</head>
<body>
<table>
<thead>
<tr>
<th>nombre:</th>
<th>cantidad:</th>
<th>precio:</th>
</tr>
<tr>
<th><input type="text" id="name" placeholder="name"/></th>
<th><input type="text" id="quantity" placeholder="quantity"/></th>
<th><input type="text" id="price" placeholder="price"/></th>
<th><input type="button" id="btn" value="add" onClick="geshiro()"/></th>
</tr>
</thead>
<tbody id="data_table">
</tbody>
</table>
<script type="text/javascript">
var geshiro = function(){
var data = {
name: document.getElementById('name').value,
quantity: document.getElementById('quantity').value,
price: document.getElementById('price').value
};
document.getElementById("data_table").innerHTML += "<tr><td>"+data['name']+"</td><td>"+data['quantity']+"</td><td>"+data['price']+"</td></tr>";
}
</script>
</body>
</html>
Salu2
PD: El for sobraba, ya que estabas añadiendo una fila para cada input de tu formulario, 3 text y un button.