2014-08-29 4 views
4

В чем разница между следующим кодом?разница между числами с использованием или без использования переменной

var a = 1; 
a.toString(); // outputs: "1" 

Но это выдает ошибку:

1.toString(); 

SyntaxError: Неожиданное фишку НЕЗАКОННОГО

Почему? Почему первый код работает, но второй код вызывает ошибку?

ответ

12

С вызовами методов, важно различать с плавающей точкой точки и вызовом методы точки. Таким образом, вы не можете писать 1.toString(); вы должны использовать один из следующих вариантов:

1..toString() 
1 .toString() //space before dot 
(1).toString() 
1.0.toString() 
0

Попробуйте изменить синтаксис,

(1) .ToString()

Числа могут иметь десятичные, так синтаксис для окончания в десятичном значении является немного неоднозначным, когда вы идете разбирать код, используйте скобки, чтобы они были действительными. Это немного яснее, когда вы видите, что это справедливо: (. 1)

ToString()

Однако только с

1.toString() он пытается разобрать, как числа с. десятичный, и он терпит неудачу.

1

The toString() method returns a string representing object.

Так что, когда вы звоните:

a.toString(); 

Вы на самом деле работает на объекте. Фактически вы создаете встроенный объект, когда вы определяете переменную (в данном случае это число).

Когда вы сделаете это:

1.toString(); 

ToString() не видит 1 как объект или переменную (оба являются одинаковыми в этом случае), поскольку она не правило:

Variable must begin with a letter

Здесь 1 не начинается с буквы. Таким образом, toString() знает, что он не работает на объекте и выдает ошибку.

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