2013-03-08 2 views
2

JavaScript에서 이해할 수없는 것이 하나 있습니다. 자바 스크립트 변수 초기화

우리는 다음과 같이 변수를 선언 할 때 :
var var_Name 

그것은 지역 변수을했다.

우리는 다음과 같이 변수를 선언 할 때 :
var_Name 

그것은 글로벌 변수을했다.

브라우저가 정확히 값을 재설정하면 언제입니까? 페이지가 새로 고침되면?

페이지가로드 될 때마다 변수를 선언하고 그때까지 값을 늘립니다. 값을 다시 원래의 초기화로 설정하려고 할 때? 페이지를 새로 고칠 때? 또는 그것이 인 경우 지역 변수은 사용을 중지 한 후 바로 새로 고칩니다. 일 경우 전역 변수 페이지가 새로 고침 될 때만 새로 고침을합니까?

감사합니다.

+0

나는 페이지 로딩이 variabls에 영향을 미치지 않을 것이라고 믿는다. – Jacob

+1

@Jacob : 그건 틀렸다. 아래의 답변을 참조하십시오. – Dancrumb

+1

글로벌은 모든 파일 및 기능에서 사용할 수 있음을 의미하며 로컬은 선언 된 위치로 제한됩니다. 변수는 단지 여러분이 제공 한 데이터를 보유하고 세션이나 영구 데이터처럼 작동하지 않으므로 새로운 인스턴스에 대해 보유 할 데이터가 주어질 때까지 다시로드 한 후에 사라집니다. – ashley

답변

3

글로벌 선언 : 변수가 한 창 개체처럼 살고

var_Name = 1; 
// is equal to 
var var_Name = 1; 
// and is also equal to 
window.var_Name = 1; 

. 따라서 현재 페이지를 나가거나 다시로드 할 때까지 사용할 수 있습니다.

함수 내부의 지역 변수는 한 함수가 실행되는 거주지 :

function y(){ 
var x = 1; 
console.log(typeof x !== 'undefined'); 
} 
y(); 
console.log(typeof x === 'undefined'); 
+0

감사합니다! 이 예제는 C#, Java, VB.NET에서 프로그래밍을했기 때문에 완벽했습니다. 그래서 당신이 말하려고했던 것을 이해했습니다. 감사합니다. – kfirba

3

전역 변수는 페이지에서로드 한 파일의 모든 함수에서 액세스 할 수 있습니다. 페이지가 다시로드 될 때 일부 코드가 다시 실행될 때까지 변수가 설정 해제되고 값이 할당됩니다.

2

자바 스크립트 엔진은 페이지가로드를 통해 어떤 변수 값을 유지하지 않습니다. 따라서 페이지를 다시로드하면 페이지 수명 동안 선언되고 정의 된 모든 전역 변수가 손실됩니다.

var으로 선언 된 변수는 정의 된 범위로 제한됩니다. 브라우저의 경우 기능 범위와 전역 범위 만 있습니다. 결과적으로 함수에서 선언 된 지역 변수는 함수가 반환되면 닫힙니다 (인터넷 검색에 가치가있는 큰 주제).

변수가 프로그램에서 명시 적으로 수행하지 않고 원래 할당 된 값으로 '새로 고침'하지 않습니다. 그것들은 범위 안에 있거나 범위를 벗어났습니다. 그리고 범위 안에있을 때, 그들은 그들에게 마지막으로 할당 된 어떤 값을가집니다.

그것은 주목할 가치가 그 함수의 다음과 같은 외부 실행 : 당신은 기능의 범위 내에 있지 않은 경우 글로벌 범위에있어 이후

var foo = 1; 

여전히 글로벌 변수를 만들 것이다.

+0

날카로운 설명 주셔서 감사합니다! – kfirba

0

모든 변수가 전역 변수로 표시됩니다.지역 변수는 정의한 블록에서만 볼 수 있습니다. 변수는 다른 문서에 표시되지 않습니다.

페이지를 새로 고치면 모든 변수가 새로 설정되므로 저장할 때까지 (예 : 쿠키 또는 아약스를 통해) 변수 값을 가져 오지 않습니다.