변수 스코프(scope) - 지역변수 전역변수
사용자 함수 내(서브루틴)에서 사용되는 함수를 지역변수(Local Variable)라 하고, - let
메인 루틴에서 사용되는 변수를 전역변수(Global Variable)이라 한다. - var
<script>
function calcsum(n) {
sum = 0;
for (let i=1; i<=n; i++) {
sum += i;
}
}
calcsum(10);
console.log(sum); // console.log() 메서드는 웹 콘솔에 메시지를 출력합니다.
</script>
const 상수
상수 변수로 취급한다.
특정 값을 자주 사용한다면 상수로 선언하는 것이 좋다.
재선언이나, 재할당이 불가하다.
const curYear = 2020;
console.log(curYear);
const curYear = 2024; // 오류 상수 재할당
전역변수(함수 밖에서 선언하는 변수와 상수변구)는 최소한으로 사용하고, var 변수는 함수의 시작 부분에서 선언하며,
for 문에서는 var 보다 let을 사용해서 변수를 선언해주는 것이 좋다.
그리고 ES6 이상을 사용한다면, var 보다 let을 사용하는 것이 좋다.
- 오류
<script>
function calcsum() {
var x = 10; // 함수 내, 지역변수
document.write(x + "1<br>");
}
calcsum();
document.write(x+"2<br>"); // 함수 밖, x가 정의되어 있지 않으므로 오류.
// ReferenceError: x is not defined 개발자 도구에서 오류 체킹 가능
</script>
- 정상
<script>
var x = 12; //전역변수
function calcsum() {
var x = 10; // 함수 내, 지역변수
document.write(x + "1<br>");
}
calcsum();
document.write(x+"2<br>"); // 함수 밖, x가 정의되어 있지 않으므로 오류.
// ReferenceError: x is not defined 개발자 도구에서 오류 체킹 가능
</script>
- 값을 찾지 못함
<script>
var x = 12;
function calcsum() {
var x; // 함수 내, 지역변수
document.write(x + "1<br>");
}
calcsum();
document.write(x+"2<br>"); // 함수 밖, x가 정의되어 있지 않으므로 오류.
// ReferenceError: x is not defined 개발자 도구에서 오류 체킹 가능
</script>
출력
undefined1
122
익명함수 Anonymous Function
말 그대로 이름이 없는 함수, 함수를 만들고 변수를 선언한 뒤, '변수에 함수를 저장' 하는 방식
이런 함수를 만드는 것을 '함수 리터럴(Literal)'이라고 한다.
프로그램 전반에 일정한 규칙을 줄 때 사용한다.
var 변수명 = function() { // 함수 정의를 변수에 저장
지시문1;
지시문2;
...
}
변수명(); //함수 실행을 변수 명으로 한다.
즉시 실행 함수
한번만 실행하는 함수는 선언할 필요 없는 즉시 실행 함수로 편리하게 사용가능
기본형 (function() {
명령어
} () );
화살표 함수
ES6부터는 Lamda 함수처럼 => 표기법으로 함수 선언을 간단하게 처리하는데 익명함수에서만 사용될 수 있다.
기본형(매개변수) => { 함수 내용 } 인데, 매개변수가 없으면 기본형 => { } 구문이다.
객체 (내장 객체, 사용자 정의 객체, 문서 객체 모델DOM, Window브라우저 객체 모델BOM) (0) | 2022.07.05 |
---|---|
함수 사용 예제 (0) | 2022.07.05 |
함수 Function (내장함수, 사용자정의함수, 즉시실행함수, 람다식함수 객체) (0) | 2022.07.03 |
외부 JS파일을 HTML에 불러오기 (0) | 2022.07.01 |
while을 이용한, 이미지 삽입, Table (0) | 2022.07.01 |