2016-06-15 7 views
0

ist eine direkte Kopieren/Einfügen aus der JavaScript-Konsole auf einem neuen Tab in Chrome:Warum gibt parseInt() manchmal eine Zeichenfolge zurück? Diese

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

Aus irgendeinem Grund scheint dies nur zu geschehen, wenn ich den Namen der Variablen „name“ verwenden. Es bleibt eine Zeichenfolge auch auf einer regulären Zuweisung:

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

Testen Sie den Code immer in einer isolierten Umgebung. Die globale Umgebung ist nicht isoliert. Da Sie festgestellt haben, dass das Problem nicht mit "ParseInt" zusammenhängt, ist der Titel irreführend. –

Antwort

3

Die global variable name is a special variable in browsers, die den Namen des aktuellen Fensters repräsentiert und ist immer ein String.

Als Faustregel ist es im Allgemeinen eine gute Idee, Skripts in an IIFE zu verpacken, damit sie einen lokalen Gültigkeitsbereich haben und keine Konflikte mit Variablen aus anderen Skripten und dem Browser erhalten. Dies würde dieses Problem vermeiden.

Verwandte Themen