JS 전역변수와 지역변수 본문
반응형
변수
변수는 데이터를 저장하는 공간이고, 변수는 크게 전역변수와 지역변수로 나눌 수 있습니다.
전역변수
함수 블록{} 밖이나 안에서 자유롭게 사용할 수 있습니다.
var 변수;
function 함수() {
실행문
}
지역변수
함수 블록{} 내에서만 사용할 수 있습니다.
function 함수() {
var 변수;
실행문
}
반응형
예시 1
함수 내부에서 전역변수 kor의 값을 바꿉니다.
var kor = 90;
function getScore(){
kor = 100; // 전역변수의 값을 바꿈
console.log(kor); // 100
}
getScore();
console.log(kor); // 100
결과 확인하기
100
100
100
예시 2
함수의 지역변수로 사용하려면 함수 내부에서 변수의 선언 키워드를 통해서 선언해야 함수의 지역변수로 동작합니다.
var kor = 90;
function getScore(){
var kor = 100; // 지역변수
console.log(kor); // 100
}
getScore();
console.log(kor); // 90
결과 확인하기
100
90
90
예시 3
블록{}에 의해 변수의 범위가 달라지는 것을 변수의 scope라고 합니다 전역 변수는 블록 내와에서 사용할 수 있기 때문에, 자칫 동일한 이름으로 덮어 써질 수 있는 문제가 있습니다. 따라서 전역변수보다는 지역변수가 안전합니다.
function getScore(){
var kor = 100; // 지역변수
console.log(kor); // 100
}
getScore();
console.log(kor); // 에러
결과 확인하기
100
kor is undefined
kor is undefined
함수 레벨 스코프와 블록레벨 스코프
키워드 | 스코프 | 설명 |
---|---|---|
var | 함수 | var의 scope는 함수 내부입니다. 함수 내부를 벗어난 외부에서 호출할 수 없습니다. for나 while같은 블럭에서 선언된 변수는 외부에서 호출할 수 있습니다. |
let | 블록 {} | 블록안에서만 동작합니다. 블록 외부에서는 호출할 수 없습니다. 또한 동일한 변수를 2번이상 선얼할 수 없습니다. |
const | 블록 {} | 블록안에서만 동작합니다. 블록 외부에서는 호출할 수 없습니다. 선언 후, 값을 다시 할당할 수 없습니다. |
// 함수의 전역변수
var sum1 = 10;
function add1(){
sum1 = 20;
}
add1();
console.log('전역' + sum1);
// 함수의 지역변수
var sum2 = 30;
function add2(){
var sum2 = 40;
console.log('지역' + sum2);
}
add2();
console.log('전역' + sum2);
// 블록의 지역변수
var num1 = 50;
if (num1 === 50){
var num1 = 60;
}
console.log('전역' + num1);
let num2 = 70;
if(num2 === 70){
let num2 = 80;
console.log('지역' + num2);
}
console.log('전역' + num2);
결과 확인하기
전역 20
전역 40
전역 30
전역 60
전역 80
전역 70
전역 40
전역 30
전역 60
전역 80
전역 70
반응형
'MarkUp' 카테고리의 다른 글
CSS 기본과 사용법을 알아보자! (5) | 2022.08.12 |
---|---|
비트맵과 벡터의 차이는 무엇일까? (13) | 2022.08.09 |
웹 표준, 웹 호환성, 웹 접근성을 알아보자! (10) | 2022.08.08 |
JS 요소 선택자 알아보기 (13) | 2022.08.05 |
JS 데이터 타입 이해하기 (12) | 2022.07.25 |
Comments