2015-12-25 4 views
0

Согласно этому post,Разница между '42 .. toFixed (3) 'и' -42..toFixed (3) '?

42..toFixed(3); // "42.000" 

Приведенный выше код является действительным, 42..toFixed(3) работает, потому что первый . является частью числа, а второй . оператор недвижимости.

Однако результаты -42..toFixed(3); и -42 .toFixed(3) являются -42 под Chrome, что отличается от положительного. Зачем? Я хочу знать, как двигатель обрабатывает вышеуказанные коды?

+0

использовать '(-42) .toF ixed (3) 'вместо' - (42..toFixed (3)) '. (Скобки делают это более очевидным, что вы делаете) –

ответ

2
(42.).toFixed(3) // Results 42.000 
(-42.).toFixed(3); // Results -42.000 

Использование скобок, чтобы сделать себя и программировать ясно, что вы хотите сделать.

1

Поправьте меня, если я ошибаюсь, но я думаю, что .toFixed вызов имеет приоритет над - знаком, что и приводит к следующему потоку:

  1. исполнения 42..toFixed (3) , в результате чего '42 .000'

  2. применяя - к результату шага 1, т.е. -'42.000' , который, очевидно, приводит к -42

Смежные вопросы