Я только что выпустил что-то странное (по крайней мере для меня), которое произошло в JavaScript (не знаю, может быть, и на других языках). У меня есть этот пример:Добавить строку с целым числом в JavaScript странное поведение?
var a = "1";
var b = 1;
console.log(a + b); // this one returns 11 as it suppose
console.log(b + a); // this one returns also 11 as it suppose
console.log(a + b + b); // this one returns 111? why not 12 ?
console.log(b + b + a); // but this return 21 as it suppose
Может кто-нибудь объяснить мне, почему это произошло? Спасибо в продвинутом и извините, если это очень глупый вопрос.
операции обрабатываются слева направо. Как только встречается строка, она выполняет конкатенацию. В противном случае это добавление. Так как сначала встречается 'b + b', он оценивается как дополнение, а затем объединяется с' a'. Вы можете посмотреть на поведение здесь: http://es5.github.io/#x11.6.1 – Ian
Большое спасибо @Ian. – user2019037