let text1 = "함수 선언 전 에러";
let text2 = "함수 선언 후 호출";
printMsg1(text1);
function printMsg1(msg){
document.wrtie("함수 호출 메시지: " + msg + "<br />");
}
printMsg1(text2);
document.write("<p />");
document.write("<hr />");
//==============================
let text3 = "함수 선언 전 에러";
let text4 = "함수 선언 후 호출";
printMsg2(text3);
let printMsg2 = function(msg){
document.write("함수 호출 메시지: " + msg + "<br />");}
printMsg2(text4);
//====================================================================
function printMsg3(msg){
document.write("기면함수: " + msg + "/>");
}
var printMsg3 = function(msg) {
document.write("익명함수 : " + msg + "<br />")
}
printMsg3("호출되었습니다.")
기명함수(Named Function)
함수 선언문을 사용하여 이름을 가진 함수
호이스팅 특성을 의해 함수 선언문이 코드 상단으로 끌어올려지므로 함수 선언 이전에 함수 호울치 가능
무명함수(Anonymous Function)
이름이 없는 함수, 일반적으로 변수에 할당하거나 다른 함수의 읹로 전달하여 사용 호이스팅 불가, 따라서 함수 선언 이전에 호울치 불가.
기명함수보다 무명함수가 호출 시 우선순위가 더 높음
<script>
function printMsg(name, age){
document.write("학생이름 : <b>" + name + "</b><br />");
document.write("학생나이 : <b>" + age + "</b><br />");
}
</script>
<button type="button" onclick="printMsg('김창우',27)">학생 정보</button>
변수를 만들고 버튼을 누르면 온클릭으로
해당 갑 입력 후 출력
<script>
function add() {
let sum = 1;
return sum;
}
function add(x) {
let sum = x + 1;
return sum;
}
function add(x,y) {
let sum = x + y;
return sum;
}
function add(x,y,z) {
let sum = x + y +z;
return sum;
}//마지막에 정의된 함수가 유효
let r0 = add();
let r1 = add(1);
let r2 = add(2,3);
let r3 = add(4,5,6);
let r4 = add(7,8,9,10);
document.write("함수 호출 인자 부족"+r0 +"<p />"); //함수 호출 인자 없음
document.write("함수 호출 인자 부족"+r1 +"<p />");//함수 호출 인자 부족
document.write("함수 호출 인자 부족"+r2 +"<p />");//함수 호출 인자 부족
document.write("정상 출력"+r3 +"<p />"); //정상출력
document.write("7,8,9만 인자값으로 적용"+r4 +"<p />"); //인자 값이 많음(4개)
</script>
<script>
function add() {
let i, sum=0;
for(i=0; i<arguments.length;i++){
sum += arguments[i];
}
document.write("수행결과 : " + sum + "<p />");
}
add(2,3);
add(4,5);
add(6,7,8);
add(9,10,11,12);
</script>
<script>
function add(x,y,z){
let sum;
if((y===undefined)&& (z===undefined)){
sum=x;
}else if(z===undefined){
sum = x+y;
}else{
sum = x+y+z;
}
return sum;
}
let r1 = add(2);
let r2 = add(4,5);
let r3 = add(6,7,8);
document.write("함수 인자 부족 : " + r1 + "<p/>" );
document.write("함수 인자 부족 : " + r2 + "<p/>" );
document.write("정상호출 : " + r3 + "<p/>" );
</script>