동작해야 할 목적대로 명령을 묶어 놓은 것묶은 기능에 이름을 붙여서 어디서든 같은 이름으로 명령을 실행할 수 있음❗❗함수 선언
function function_name() {
명령
}
함수 호출
function_name() 또는 function_name(변수)
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>함수</title>
</head>
<body>
<script>
function addPlus(){
let add1 = 50;
let add2 = 30;
let sum = add1 + add2;
alert(`결과는 ${sum}입니다.`)
}
addPlus()
</script>
</body>
</html>

var 예약어를 사용한 변수는 함수 스코프를 가짐함수 안에서 선언하고 함수 안에서만 사용함
전역 부분에서 result 변수를 요청하면 오류가 난다!스크립트 소스 전체에서 사용함

마치 앞에서 미리 앞에서 선언한 것처럼 인식함.아예 오류를 발생하는 것이 안전할 수 있음! 재선언이 가능하면 실수로 변수를 잘못 조작할 확률이 높아짐!!!var num = 3;
for (let i=1; i<=10; i++){
var num=5;
var multipleResult = num * i;
console.log(`${num} X ${i} = ${multipleResult}`);
}

블록 ( { } ) 안에서만 사용할 수 있다.호이스팅이 없다!!!function sum() {
let num = 5;
let result = 0;
for (let i = 1; i <= num; i++){
result = result + i;
}
console.log(result);
}
sum();
console.log(result);

변하지 않는 값을 선언할 때 사용
function mul(num1, num2 = 5, num3 = 10){
return num1 + num2 + num3;
}
let result1 = mul(5, 10, 15);
console.log(result1);
let result2 = mul(5, 10);
console.log(result2);
let result3 = mul(20);
console.log(result3);


(function() {
명령
}());
// 또는
(function(매개변수) {
명령
}(인수));

(매개변수) => { 함수 내용 }
// 원래 식
const hello = function() {
return alert("하이헬로우");
}
// 🔽
const hello = () => {return alert("하이헬로우")};
// 🔽 return 생략
const hello = () => alert("하이헬로우");
let hello = function(user) {
document.write (user + "님, 하이!");
}
// 🔽
let hello = user => {document.write (user + "님, 하이!");}
let sum = function(a,b){
return a + b;
}
// 🔽
let sum = (a,b) => a + b;
웹 문서 영역안에서 이루어지는 동작만 가리킴!키보드 이벤트
| 종류 | 설명 |
|---|---|
keydown | 사용자가 키를 누르는 동안 이벤트가 발생 |
keypress | 사용자가 키를 눌렀을 때 이벤트가 발생 |
keyup | 사용자가 키에서 손을 뗄 때 이벤트가 발생 |
마우스 이벤트
| 종류 | 설명 |
|---|---|
click | 사용자가 HTML 요소를 클릭할 때 이벤트가 발생 |
dblclick | 사용자가 HTML 요소를 더블 클릭할 때 이벤트가 발생 |
mousedown | 사용자가 요소 위에서 마우스 버튼을 눌렀을 때 이벤트가 발생 |
mousemove | 사용자가 요소 위에서 마우스 포인터를 움직일 때 이벤트가 발생 |
mouseover | 마우스 포인터가 요소 위로 움직일 때 이벤트 발생 |
mouseout | 마우스 포인터가 요소를 벗어날 때 이벤트 발생 |
mouseup | 사용자가 요소 위에 놓은 마우스 버튼에서 손을 뗄 때 이벤트가 발생 |
문서 로딩 이벤트
| 종류 | 설명 |
|---|---|
abort | 문서가 완전히 로딩되기 전에 불러오기를 멈췄을 때 이벤트 발생 |
error | 문서가 정확히 로딩되지 않았을 때 이벤트 발생 |
load | 문서가 로딩이 끝나면 이벤트 발생 |
resize | 문서 화면 크기가 바뀌었을 때 이벤트 발생 |
scroll | 문서 화면이 스크롤되었을 때 이벤트 발생 |
unload | 문서에서 벗어날 때 이벤트 발생 |
폼 이벤트
| 종류 | 설명 |
|---|---|
blur | 폼 요소에 포커스를 잃었을 때 이벤트 발생 |
change | 목록이나 체크 상태 등이 변경되었을 때 이벤트 발생. <input>, <select>, <textarea> 태그에서 사용 |
focus | 폼 요소에 포커스가 놓였을 때 이벤트 발생. <label>, <select>, <textarea>, <button> 태그에서 사용 |
reset | 폼이 reset되었을 때 이벤트 발생 |
submit | submit 버튼을 클릭했을 때 이벤트 발생 |
이벤트가 발생했을 때 처리하는 함수<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>자바스크립트 이벤트</title>
<link rel="stylesheet" href="css/function.css">
</head>
<body>
<!-- HTML 요소에 이벤트 처리기 연결하기 -->
<ul>
<li><a href="#" onclick="alert('Green 버튼을 클릭했습니다.')">Green</a></li>
<li><a href="#" onclick="alert('Orange 버튼을 클릭했습니다.')">Orange</a></li>
<li><a href="#" onclick="alert('Purple 버튼을 클릭했습니다.')">Purple</a></li>
</ul>
<div id="result"></div>
</body>
</html>
