Я столкнулся с чем-то странным (вероятно, нет, скорее всего, я его не понимаю) в JavaScript, и мне было бы любопытно узнать, почему вещи ведут себя так, как они.
Когда ясделайте:
var index = '1';
index++;
alert(index);
index = index + 1;
alert(index);
index = true ? index + 1 : 0;
alert(index);
, как в http://jsfiddle.net/5mdmJ/, оповещения перейдут на «2», «3», «4»
Когда я переверну заказ и сделаю это (http://jsfiddle.net/5mdmJ/1/):
var index = '1';
index = true ? index + 1 : 0;
alert(index);
index = index + 1;
alert(index);
index++;
alert(index);
У меня будет "11", "111" и "112".
Я знаю, что это что-то с индексом, являющимся строкой, но я действительно не понимаюпочему он вводится целым образом в примере 1 и строковым вводом в примере 2. Я знаю, что это, вероятно, будет очень просто, но я не мог найти ничего, что действительно прояснит мне логику того, что происходит.Меняется ли тип? Почему и когда это происходит?
Спасибо за любую подсказку, статью или что-то еще!