변수(variable)
값에 이름을 할당하여 다시 사용할 수 있는 기능이며, 블록 스코프를 갖고 있습니다.
- let : 이미 값이 대입되어 있는 변수에 다른 값을 대입할 수 있습니다.
- const : 재대입이 불가능한 변수를 선언시 사용합니다.
- var : 값을 다시 대입할 수 있는 변수이며, 함수스코프를 갖음으며 재선언을 허용합니다.
// 블록 안에서 선언된 변수는 외부에서 접근 할 수 없음
if (false) {
let a = 0;
}
console.log(a) // ReferenceError: a is not defined
for (let i = 0; i < 10; i++) {
console.log(i);
}
console.log(i); // ReferenceError: i is not defined
let
// 선언 및 대입
let a = 1;
const
// 선언 및 대입
const a = 1;
var
// 선언 및 대입
var a = 1;
// 함수스코프
function a() {
var b = 1;
}
a();
console.log(b); // ReferenceError: b is not defined
// 재선언 허용
var foo = 1;
var foo = 1;
전역 변수 (Global Variable)
스코프 체인의 가장 바깥쪽에 있는 스코프이며, let, const, var 붙이지 않고 변수 선언하면 전역 변수 생성
전역변수 사용시 주의 사항은 하단에 나열하였습니다.
- 전역 변수에는 아무런 제한 없이 접근할 수 있으므로, 프로그램의 크기가 커짐에 따라 변수의 값이 어디서 어떻게 변경될지 예측하기 어려움
- 전역 변수를 통해 너무 많은 부분이 결합이 됨
- 코드가 다른 곳에 위치하여, 전역 변수를 사용한 코드는 이해하기 어려움
// 전역 스코프에 선언
let a;
// 블록 스코프에 선언
if (true) {
let b;
}
// 전역 변수 생성
function a () {
variable = 1;
}
a();
console.log(variavle); // 1
전역 객체 (Global Object)
JavaScript 구동 환경은 모두 전역 객체(Global Object)라는 특별한 객체를 갖고 있음.
전역 변수가 선언되면, 이 변수는 또한 전역 객체의 속성이 되어 전역 객체를 통해서도 접근가능
구동 환경에서 유용하게 쓸 수 있는 속성과 함수가 미리 적재되어 있음
let a = 1;
window.a; // 1
식별자
하단에 있는 변수의 이름은 모두 식별자 입니다.
- 숫자, 알파벳, $, _ 사용 가능
- 숫자로 시작은 불가능
- 예약어는 식별자 불가능
const foo // 0
const _bar123; //0
const $; //0
const 7; // x
const const; //x
Camel Case
식별자 이름을 지을 때 식별자에 들어가는 각 단어의 첫 글자를 대문자로 써 주는 방식
let fooBar;
Snake Case
식별자 이름을 지을 때 식별자에 들어가는 단어 사이에 언더스코어를 사용합니다. 자바스크립트에서는 잘 사용되지 않음
let foo_bar;
'JAVASCRIPT' 카테고리의 다른 글
함수 (0) | 2019.07.22 |
---|---|
null과 undefined (0) | 2019.07.19 |
boolean 타입 (0) | 2019.07.18 |
string 타입 (0) | 2019.03.20 |
number 타입 (0) | 2019.03.19 |