함수(function)란 하나의 특별한 목적의 작업을 수행하도록 설계된 독립적인 블록을 의미한다.
함수가 어떤 명령을 처리해야 할지 미리 알려주는 것
function 예약어를 사용하고, {}안에 실행할 명령을 작성
function addNumber(){
var sum = 10 + 20;
console.log(sum);
}
함수 이름을 사용해 함수 실행
addNumber()
함수를 선언해 놓기만 하면, 선언한 위치와 상관없이 함수를 실행 할 수 있다.
addNumber();
function addNumber(){
...
}
function addNumber(){
...
}
addNumber();
var 변수의 스코프(scope)
let과 const가 바로 프로그래밍 오류를 방지하기 위해서 ES6 버전부터 등장한 변수를 선언하는 예약어다.
var 변수의 호이스팅
변수를 선언하기 전에 변수를 사용하면?
->오류가 생기지 않는다.
->변수 선언이 앞에 있는 것처럼 끌어올려(hoisting) 인식한다.
var x
변수의 스코프
let 변수와 const 변수는 블록 영역의 스코프
호이스팅 없음
변수를 선언하지 ㅇ낳고 사용하면 오류 발생
변수의 재선언 불가
같은 변수를 다시 선언하면 오류 발생
전역 변수는 최소한으로 사용한다.
var 변수는 함수의 시작부분에서 선언한다.( 호이스팅 방지)
for문의 카운터 변수는 블록 변수(let)을 사용한다.
ES6를 사용한 프로그램이라면 var보다 let을 사용한다.
function addNumber(a,b){
var sum = a + b;
console.log(sum);
}
addNumber(2,3);
addNumber(10,20);
var num1 = parseInt(prompt("첫 번째 숫자는? "));
var num2 = parseInt(prompt("두 번째 숫자는? "));
var result = addNumber (num1, num2);
alert("두 수를 더한 값은 " + result + "입니다.");
function addNumber(a,b){
var sum = a + b;
return sum;
}
var add = function(a, b){
return a + b;
}
>var sum = add(10,20);
>sum
<30
(function(){
...
})();
or
(function(){
...
}());
함수를 이용한 놀이
<script>
var dan = parseInt(prompt("단을 입력해주세요."));
function displaygugudan(todan){
for(let i = 2; i < todan + 1; i++){
for(let j = 1; j < 10; j++){
document.write(i + "*" + j + "=" + i*j+"<br>");
}
}
}
displaygugudan(dan);
</script>
구구단
이번 수업은 함수에 관한 내용을 소개하고 이를 따라하는 것이다. 수업 난이도는 지난 주의 for, while과 비교하면 무난했었다.
이번 수업은 무난했었지만 대체 강사는 과제는 아니지만 이전 함수 과제로 했었던 것을 응용해보라는 말을 했었다. 결론은 복습을 하라는 소리였다.
오늘은 이전에 하던 강사가 급한 사정으로 인하여 다른 강사가 맡게 되었다. 수업이 원할하게 진행되지 않아 나는 ppt자료를 읽어야 했었다. 그래서, 이번 수업에는 쉬는 시간을 뛰어넘고 진도를 맞춰야 할 수 밖에 없었다. 이번 수업에는 시간을 조금 초과한 것을 뺀다면 그리 나쁜 수업은 아니었다.