Примитивный калькулятор (ошибка в коде)

спасибо!
а что делает 10 для return parseInt(a, 10)? оно и без этих чисел всё работает

Необязательный параметр. Целое число, представляющее основание системы счисления для числа в указанной выше строке. Для избежания непонятностей при чтении кода и гарантии предсказуемого поведения всегда определяйте этот параметр. Различные реализации дадут разные результаты, если основание системы счисления не будет указано.

Спасибо за интерес к вопросу.
Ваш калькулятор с дизайном по примеру пока что реализовать сложно. Оставлю его до лучших времен…
Но если делать такую задачу, и разбить её по шагам (поэтапно реализовывать функционал такого калькулятора), то - делаю пока что первый шаг задачи - функцию для переноса значений из кнопок в поле для ввода input.
Сделала верстку свою для этой задачи (набросок, пока что без дизайна), потому что я пока не вижу другого способа переносить значения, кроме как присваивание value от input-а к input-у.
Вот что вышло - http://jsfiddle.net/LenaR/xj8x8xmd/
И не работает. И в консоли не выдает ошибок. И Jshint.com тоже не обнаруживает ошибок.

onekey.addEventListener('.click', result, false);

Здесь вы добавляете элементу onekey обработчик на событие .click, точка в начале лишняя.

onekey.value = document.querySelector('.first').value;
  1. В вашей HTML-разметке нет элемента с классом first, только firstN.
  2. Здесь вы изменяете значение кнопки на то, что сейчас находится в input-e, вы уверены что это то что вам нужно.

Почему вы не хотите пользоваться аргументом обработчика события. Функции обработчику при возникновении события передаётся аргумент-событие (event). Вот так:

function result (event)
{
//ваш код обработчика
}

С его помощью можно узнать на каком элементе произошло событие, и соответственно значение этого элемента (в вашем случае кнопки). Вот почитайте

Спасибо, исправила
хорошо, передаю аргумент в функцию- http://jsfiddle.net/LenaR/xj8x8xmd/4/
теперь выдает ошибку в консоли Cannot set property ‘value’ of undefined
Почему? , ведь есть свойство value у обеих интпутов

event.onekey.value = document.querySelector('.firstN').value;
У объекта event нет свойств onekey, twokey, …
Доступ к объекту на котором произошло событие можно получить через event.target.
Вот посмотрите что выводится в консоли при нажатии на кнопки.

хорошо, оно в консоль передает
но почему такая запись
function result (event){
event.target.value = document.querySelector(’.firstN’).value;
} - не передает это значение value в поле для ввода?

а что оно в консоли передает и откуда?

попробуйте вывести так:

function result (event){
console.log(event)
event.target.value = document.querySelector(‘.firstN’).value;
}

передает value той кнопки, по которой кликнули

выдает MouseEvent
но оно мне ничего не говорит (сложно понять)

Если переписать функцию event (на примере кнопки 1):
function result (event){
event.target.onekey = document.querySelector(‘.firstN’).value;
} - то в итоге при клике по кнопке 1 - передает уже значение undefined в поле ввода и на кнопке вместо 1 также появляется undefined
Возможно ошибка в записи event.target.onekey (идет обращение к переменной onekey).
Если обращаться к id этой кнопки : event.target.one - то та же ошибка undefined

И я не понимаю почему target вместо value. В моем понимании target - это для ссылки, указывает как открыть страницу.
Логично было бы:
event.value (значение инпута) .one (идентификатор этого инпута) = (присвоить) document.querySelector(‘.firstN’).value;(значение инпуту firstN )

Где можно почитать подробнее про target для input что ли (разве у инпутов бывает свойство target)?

MouseEvent и ест наш объекту

function result (event)
event -переменная (ничто, 0, псто), в нее вы запиСуёте MouseEvent

допустим event, это номер дома 69 - а вам нужен Гавриилов который живет в квартире 666 на 13 этаже. целью является Гавриилов вызываем его:
69.13.666.Гавриилов и он к вам снизойдет.

в картинках


Что тогда является объектом для этой кнопки:
input type = “button” class = “key” id = “one” value = “1” ?
Чему надо присвоить = document.querySelector(’.firstN’).value ?
Из примера - это input, потом его id потом class.
Как это записать в в коде?:
event.target.input#one.key = document.querySelector(’.firstN’).value; - так неверно

о

Передать value кнопки в value инпута

event.target.value - значение кнопки при нажатии в нее записывается число из
дома
вот тут видно какая кнопка была нажата
http://forum.jscourse.com/uploads/default/original/1X/043dc7be551bdf5f0324ca56c0e78e0046e77b88.png

document.querySelector(‘.firstN’).value -этим выражением вы обращаетесь к полю инпута class=“firstN” там у вас что?

теперь вы берете и value кнопки (тут у наз записано “3”)=присваиваете значение value инпута(???)
так вы делали раньше и пытаетесь повторить опять и опять…

другими словами вам
value инпута нужно присваивать, передавать,записывать значения value кнопки

Значит что - поменять местами?
document.querySelector(’.firstN’).value = event.target.three; (присваиваем полю значение кнопки 3)
но оно ничего не меняет. Либо неправильно значение кнопки записано.

а почему вы в event.target вставили .three ?
как по вашему где оно должно находится это .three ?
смотрите свойства MouseEvent

http://jsfiddle.net/xj8x8xmd/11/

получается ошибка - в неправильной логике построения кода: присваивание значений в функции делается не для каждой кнопки отдельно, а одно для всех…
спасибо за объяснение

Но оно присваивает значение только одной кнопки в это поле ввода. Например, число из двух-трех цифр набрать на этом калькуляторе нельзя.
С помощью чего можно добавлять в поле другие значения кнопок?Хотя бы идею подкиньте (но не готовое решение)

читайте про массивы, конкатенацию