2016-06-15 2 views
0

이 크롬에서 새 탭에서 자바 스크립트 콘솔에서 직접 복사/붙여 넣기입니다 :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에 랩핑하여 로컬 범위를 가지며 다른 스크립트 및 브라우저의 변수와 충돌하지 않도록하는 것이 좋습니다. 이렇게하면이 문제를 피할 수 있습니다.