Как думаете, какой результат будет выведен?
Проверяем прямо в консоли браузера и получаем "3"... что? 😳
Это один из специфических нюансов Javascript
Если после "0" следуют цифры от 0 до 7, то такие числа рассматриваются как числа в восьмеричной системе счисления
Но если после "0" есть цифры 8 или 9, то такое число в восьмеричной системе не может существовать и рассматривается как десятичное
Поэтому "018" будет интерпретировано как "18", а "017" будет преобразовано из восьмеричной системы в десятичную и будет равно "15", следовательно 18 - 15 = 3
Кому интересны подробности - ссылка на MDN
Post #170
1.09K

- 👍 5