Javascript 변수를 선언 할 때 var가 필요합니까?
자바 스크립트에서 변수를 만들 때 변수 이름 앞에 "var"를 추가해야합니까?
예를 들어 대신
var message = "Hello World!"
사용해도 되나요
message = "Hello World!"
?
Google Adsense와 같은 스크립트는 var를 사용하지 않습니다.
예:
google_ad_width = 160;
google_ad_height = 600;
google_color_border = "000000";
google_color_bg = "ffffff";
를 사용하여 변수를 선언하지 않으면 (현재 범위에서 명시 적으로 생성) var, let그렇지 const않은 경우 (비 엄격 모드에서) 암시 적 전역을 생성합니다.
전역은 서로 다른 함수가 서로의 변수를 덮어 쓰도록하는 환상적인 방법입니다 (즉, 코드를 유지 관리하는 데 어려움이 있습니다).
를 사용하는 경우 var변수의 범위는 현재 함수 (및 그 안에있는 모든 기능-함수를 중첩 할 수 있음)로 제한됩니다.
( const그리고 let대신 함수의 블록에 대한 범위의 상수와 변수이 변수는 통상적으로보다 더욱 쉽게 관리 할 수있게 var한다.)
Google Adsense는 스크립트를 두 개의 개별 부분 (로컬 및 원격)으로 분할하기 때문에 전역을 사용합니다. 더 깨끗한 방법은 원격 스크립트에 정의 된 함수를 호출하고 매개 변수를 전역 범위에서 선택하는 대신 매개 변수로 전달하는 것입니다.
현대 JS는 암시 적 전역을 금지하는 엄격 모드 로 작성해야합니다 (대신 최상위 수준에서 명시 적으로 선언하는 것을 선호하므로 변수 이름이 오타 될 때 우발적 인 전역이 방지 됨).
예, 항상 var.
사용하지 않으면 var두 가지 주요 단점이 있습니다.
- 그 함수 내에서 정의되지 않은 함수 내 변수를 액세스하는 것은 인터프리터가 하나 발견 할 때까지 해당 이름을 가진 변수의 범위 체인을 조회하는 원인이 아니면 (을 통해 브라우저에서 액세스 할 수있는 전역 객체에 도달 할
window곳 것) 속성을 만듭니다. 이 전역 속성은 이제 모든 곳에서 사용할 수 있으며 잠재적으로 혼동을 일으키고 버그를 감지하기 어렵습니다. - 선언되지 않은 변수에 액세스하면 ECMAScript 5 엄격 모드에서 오류가 발생합니다.
또한 var전역 변수를 사용하지 않는 것은 using var:를 사용 하는 것과 정확히 동일하지 않습니다 .를 사용 var하면 전역 객체에 생성되는 DontDelete속성 은 내부 속성을 갖습니다 . 이는 다음이없는 경우는 아닙니다 var.
// Next line works in any ECMAScript environment. In browsers, you can
// just use the window object.
var globalObj = (function() { return this; })();
var x = 1;
delete globalObj.x;
alert(x); // Alerts 1, x could not be deleted
y = 2;
delete globalObj.y;
alert(y); // Error, y is undefined
에서 http://www.updrift.com/article/to-var-or-not-to-var-my-javascript
- 전역 변수의 경우 중요하지 않지만 일관성을 위해 사용할 수 있습니다.
- 항상 'var'를 사용하여 로컬 함수에서 변수를 선언하십시오. 다른 범위에서 같은 이름의 다른 변수 대신 변수의 로컬 복사본을 사용하고 있는지 확인합니다.
예를 들어, 여기에있는 두 개의 유사한 함수는 매우 다른 효과를 갖습니다.
var myvar = 0;
function affectsGlobalVar(i){
myvar = i;
}
function doesNotAffectGlobalVar(i){
var myvar = i;
}
var가 없으면 변수는 전역으로 정의됩니다.
페이지에 Google 애드 센스를 추가 할 때 여러 자바 스크립트 파일을 연결하게됩니다. 변수는 거기에 정의되어 있습니다.
http://pagead2.googlesyndication.com/pagead/show_ads.js 는 페이지의 스크립트 참조 중 하나 여야합니다.
For the unenlightened like myself, JavaScript basically has two scopes for variables: global and local. Variables assigned outside of a function are global, and variables assigned inside of a function, using the var keyword, are local (not rocket surgery). However, if you leave the var keyword off, it assigns a global variable, regardless of where it’s declared.
From: http://opensoul.org/2008/9/4/the-importance-of-var-in-javascript
참고URL : https://stackoverflow.com/questions/3892696/is-var-necessary-when-declaring-javascript-variables
'Program Club' 카테고리의 다른 글
| Java에서 출력 매개 변수를 사용하는 방법은 무엇입니까? (0) | 2020.12.07 |
|---|---|
| git fetch 이해 후 병합 (0) | 2020.12.07 |
| 파일 시작 부분에 줄 추가 (0) | 2020.12.07 |
| 빈 셀을 "NA"로 변경 (0) | 2020.12.06 |
| iOS 8에서 NSMutableAttributedString을 사용하는 문자열의 밑줄 부분이 작동하지 않습니다. (0) | 2020.12.06 |