함수
: '불러서 쓸 수 있는 코드 조각'이다. 변수를 선언하고 데이터를 대입하면 변수의 이름을 데이터(값)대신 사용할 수 있는 것처럼, 함수를 선언하고 기능을 정의하면 함수의 이름을 코드 조각 대신 사용할 수 있다.
변수를 선언하는 것처럼 함수를 직접 만들 수도 있다. 그러나 그 특성이 서로 다른만큼, 방법도 다르다.
- 함수 선언식
선언식으로 만든 함수의 경우 호이스팅이 가능하다. -> 함수 만드는 부분이 호출하는 부분보다 아래에 있어도 된다.function 함수명(){ //함수의 기능을 표현하 구문 }
- 함수 표현식
표현식으로 만든 함수의 경우 호이스팅이 불가능하다. -> 함수의 호출보다 무조건 먼저 선언되어야한다.const 함수명 = function 함수명(){ //함수의 기능을 표현하 구문 }
위를 통해 함수가 만들어지고 나면, 함수명은 스스로 보관하고 있는 구문 대신 사용될 수 있다. 함수가 사용되기 위해서는 반드시 '호출'의 과정을 거쳐야한다.
- 함수 호출하기 ex)
const sayHello = function(){ let number = 3 + 3 console.log(number) } sayHello() //함수의 호출
! 함수를 호출할 때에는 반드시 함수에 입력하는 데이터가 없더라도 소괄호를 붙여줘야한다.
함수의 인수
: 함수에서 소괄호의 역할은 함수가 실행될 때 사용할 재료를 전달받는 것이다. 재료란 데이터를 뜻하며, 이렇게 전달되는 데이터를 가리켜 '인수(argument)'라 한다.
인수를 전달받아 기능을 수행하는 함수를 만들 때는, 함수 정의 시 '매개변수(parameter)'를 추가해야한다. 이는 함수의 기능을 다양화하는 유용한 도구이다.
ex)
function sayVegetable(vegetable){
console.log("함수에 전달된 채소 : ")
console.log(vegetable)
}
sayVegetable("당근")
sayVegetable("5252")
매개변수는 함수 정의 시 원하는 만큼 추가할 수 있다. 단, 두 개 이상의 매개변수를 사용할 경우 각각 쉼표로 구분한다.
ex)
function sayFood(food1,food2){
console.log("함수에 전달된 음식 : ")
console.log(food1)
console.log(food2)
}
sayVegetable("치킨","피자")
sayVegetable("족발","보쌈")
함수 값의 반환
: 함수를 만들 때, 함수가 데이터를 반환하도록 할 수 있다.
함수가 데이터를 반환한다는 것은, 함수 호출문이 데이터로 대체됨을 뜻한다.
키워드 return을 사용해서 반환문을 작성한다.
return 키워드는 두가지 기능을 가진다. 데이터의 반환과 함수의 강제종료를 뜻한다.
function getThree(){
return 3; // 반환문
}
console.log(getThree())
이벤트 핸들링
- 이벤트(event)란?
: 웹 프로그래밍에서 이벤트란, DOM에서 발생하는 다양한 액션 또는 상호작용 동작을 나타내는 프로그래밍 인터페이스이다.
클릭, 키다운, 제출 이벤트 등등
이러한 이벤트가 발생하면 각각의 이벤트에 대한 이벤트 핸들러를 정의할 수 있다.
- 이벤트 핸들러(event handler)란?
: 이벤트가 발생되면 실행될 코드 블록을 뜻한다. 주로 함수가 이 역할을 담당한다.
이벤트 핸들러 엳할을 수행할 함수를 정의하는 것을 이벤트 핸들러 등록이라 한다.
! 이벤트 핸들러를 등록하기 위해 이벤트 속성에 함수를 대입하는 것과 함수호출문을 대입하는 것은 엄연히 다르다.
구문의 기본 형태)
타겟.on이벤트명 = 이벤트핸들러 함수
ex)
버튼 요소를 클릭했을 때, 경고 다이얼로그 박스를 띄우는 이벤트처리 예시
const handleClick = function(){
window.alert("환영합니다")
}
const button = document.querySelector("button")
button.onclick = handleClick
- addEventListner()
: onclick, onkeydown 과 같은 이벤트 속성을 통해 이벤트 핸들러를 등록하는 것보다 편하고 유용한 처리 방법이다.
이 메소드는 두가지 장점을 제공한다. - 이전에 추가한 이벤트 핸들러를 제거할 수 있는 대응 메소드가 존재한다.
- 같은 리스너(타겟)에 대해 다수의 핸들러를 등록할 수 있다.
사용법)
addEventListner(이벤트명, 이벤트핸들러)
- 이벤트 객체
: 추가적인 기능과 정보를 제공하기 위해 이벤트 핸들러에 자동으로 전달되는 데이터이다. 이를 활용하기 위해서는 이벤트 핸들러 함수에 매개변수를 추가하여 이벤트 발생시마다 전달 받을 수 있도록 해야한다.
ex)
target.addEventListner('click',function(event){})
value 속성
: input, select 처럼 사용자로부터 입력을 받는데 사용되는 요소들이 있다.
여기에서 사용자가 입력한 값을 읽어들일 때는 요소의 value 속성에 접근해야한다.
- 차이점
요소에 쓰여져 있는 텍스트에 접근하고 싶다 -> textContent
사용자가 직접 요소에 입력한 값에 접근하고 싶다 -> value - 입력 요소의 value에 접근하여 할 수 있는 일은 크게 읽기와 쓰기 두가지이다.
- 읽기
console.log(target.value) - 쓰기
target.value = "변경값" - html form 양식
<form> <input name = "이름" /> <input name = "별명" /> <input type = "submit" /> </form>- js 폼 양식 value접근
const form = document.querySelector("form") form.addEventListner("submit", function(e){ console.log(e.target.이름.value) console.log(e.target.별명.value) })
'JavaScript' 카테고리의 다른 글
| JavaScript. day5 (2) | 2024.01.24 |
|---|---|
| JavaScript. day4 (1) | 2023.12.27 |
| JavaScript. day2 (0) | 2023.12.25 |
| JavaScript. day1 (1) | 2023.12.21 |