Я читаю Douglas Crockford JavaScript: Хорошие части, и я нахожусь в точке, где он определяет функцию затухания. Часть этого кода сводится к следующему:
var level = 1;
var hex = level.toString(16);
Итак, я запустил это в своей консоли браузера, чтобы узнать, что я получаю....
var level = 1;
level.toString(16);
Эй, он возвращает "1
"... Fabuloso! Вундербар!
Тогда, чтобы быть нахальным, я пытаюсь это увидеть, что я получаю...
1.toString(16);
И я получаю
SyntaxError: Неожиданный токен ILLEGAL
Что? Если level
- переменная, равная 1, и выполнение этого метода на уровне отлично работает, то почему этот метод не работает на действительном числе 1? Я попробовал аналогичный эксперимент с методом toPrecision()
и работал в обоих случаях отлично. Какая проблема здесь? Является ли это еще одним из тех присущих недостатков в реализации JavaScript, или я что-то упускаю? Я тестирую в Google Chrome.
Связанный: вопрос Почему число литералов не имеет доступа к методам Number?.