2016-06-15 3 views
0

Это прямое копирование/вставка из консоли JavaScript на новой вкладке в хроме:Почему parseInt() иногда возвращает строку?

> var name = parseInt(prompt("enter a number"), 10); 
undefined 
> name 
"77" 
> var x = parseInt(prompt("Enter a number"), 10); 
undefined 
> x 
77 

По какой-то причине это только кажется, что произойдет, если я использую имя «имя» переменной. Он остается строка даже на обычное назначении:

>name 
"453" 
>name = 77; 
77 
>name 
"77" 
+0

Всегда проверяйте код в изолированной среде. Глобальная среда не изолирована. Кроме того, поскольку вы определили, что проблема не с 'parseInt', заголовок вводит в заблуждение. –

ответ

3

global variable name is a special variable in browsers, который представляет собой имя текущего окна и всегда является строка.

Как правило, рекомендуется обернуть скрипты в an IIFE, чтобы они обладали локальной областью, и вы не получаете конфликтов с переменными из других сценариев и браузера. Это позволит избежать этой проблемы.

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