5 함수
5. 함수 함수란? 코드의 집합 함수의 예 : alert ( ), prompt ( )
5.1 익명 함수 익명 함수 함수의 형태 괄호 내부에 코드를 넣음
5.1 익명 함수 함수의 생성과 출력 문자열처럼 보일 수 있지만 typeof 연산자를 사용하면 함수 자료형
5.1 익명 함수 함수의 생성과 출력 익명함수 : function ( ) {} 형태는 함수이나 이름이 없음 선언적 함수 : 이름이 있는 함수 함수 호출 : 뒤에 괄호를 열고 닫음으로 코드를 실행
5.2 선언적 함수 선언적 함수 선언적 함수 생성
5.2 선언적 함수 선언적 함수 선언적 함수의 재정의 (1)
5.2 선언적 함수 선언적 함수 선언적 함수의 재정의 (2) 코드 5-6 오류 발생 / 코드 5-7 정상 실행
5.3 매개변수와 리턴값 매개변수와 리턴값 매개변수 리턴값 함수를 호출 할 때 괄호 안에 적는 것 prompt( ) 함수를 사용하면 사용자가 입력한 문자열로 변환
5.3 매개변수와 리턴값 매개변수와 리턴값으로 함수 만들기 모든 함수에 매개변수와 리턴값을 사용하지 않음 선택적 매개변수와 리턴값 사용 input : 매개변수 / output 리턴값
5.4 매개변수 매개변수 함수 호출과 함수 연결의 매개가 되는 변수 함수 생성 시 지정한 매개 변수의 수가 많거나 적은 사용도 허용 지정하지 않은 매개변수는 undefined로 입력
5.4 매개변수 Array( ) 함수 Array( ) 함수의 형태
5.5 가변 인자 함수 가변 인자 함수란? 매개변수의 개수가 변할 수 있는 함수 매개변수가 선언된 형태와 다르게 사용했을 때 매개변수를 모두 활용하는 함수를 의미 가변인자 함수의 예 : Array( ) 함수
5.5 가변 인자 함수 sumAll( ) 함수 arguments 자바스크립트 내부 변수의 기본으로 제공 매개변수의 배열
5.5 가변 인자 함수 sumAll( ) 함수 arguments 객체를 사용한 가변 인자 함수
5.6 리턴값 리턴값 리턴 키워드 함수 실행 중 함수를 호출한 곳으로 돌아가라는 의미
5.6 리턴값 리턴값 리턴 키워드 뒤에 값을 입력하지 않을 경우 리턴하지 않으면 아무것도 들어가지 않음
5.7 내부 함수 내부 함수 프로그램 개발 시 일어나는 충돌을 막는 방법 내부 함수는 함수 내부에 선언
5.7 내부 함수 Pythagoras( ) 내부 함수 밑변과 높이를 매개변수로 받아 빗변의 길이를 리턴 내부 함수는 함수 내부에 선언
5.7 내부 함수 Pythagoras( ) 내부 함수 square( ) 함수
5.7 내부 함수 Pythagoras( ) 내부 함수 square( ) 함수 함수 이름의 충돌
5.7 내부 함수 내부 함수 이용으로 함수 충돌을 막는 법 코드 5-21처럼 내부 함수 사용 시 내부 함수 우선
5.7 내부 함수 내부 함수 이용 시 주의 할 점 pythagoras ( ) 함수 외부에서는 square ( ) 함수를 사용할 수 없음
5.8 콜백 함수 콜백 함수 매개변수로 전달하는 함수 callTenTimes ( ) 함수 : 함수를 매개변수로 받아 해당 함수를 10번 호 출
5.9 함수를 리턴하는 함수 함수를 리턴하는 함수 함수를 리턴하는 함수의 사용은 클로저 때문임
5.10 클로저 클로저 클로저 예
5.10 클로저 클로저 클로저 특징 : 규칙 위반 가능 규칙 코드 오류 시 웹 페이지 오류 발생 및 경고창을 출력하지 않음 함수 안의 지역 변수는 함수 외부에서 사용 불가능 지역 변수는 함수 실행 시 생성되고 종료 시 사라짐
5.10 클로저 클로저 클로저 정의 지역 변수를 남겨두는 현상 test( ) 함수로 생성된 공간 리턴된 함수 자체 살아남은 지역 변수 output(반드시 리턴된 클로저 함수 사용)
5.11 자바스크립트 내장 함수 내장 함수 기본적으로 내장된 함수 alert ( ) 함수과 prompt ( ) 함수
5.11 자바스크립트 내장 함수 타이머 함수 특정한 시간에 특정한 함수를 실행 가능하게 함 setTimeout ( ) 메서드 : 특정한 시간 후에 함수를 한 번 실행 setInterval ( ) 메서드 : 특정한 시간마다 함수를 실행
5.11 자바스크립트 내장 함수 타이머 함수 setTimeout ( ) 함수의 주의사항 : 특별히 없음 setInterval ( ) 함수의 주의사항 : 지속적 자원의 소비 해결 방법 : 타이머를 멈춤 clearTimeout ( )함수/clearInterval ( ) 함수를 사용
5.11 자바스크립트 내장 함수 인코딩과 디코딩 함수 인코딩 : 문자를 컴퓨터에 저장하거나 통신에 사용할 목적으로 부호화 하는 방법 디코딩 : 인코딩을 원래대로 되돌리는 것
5.11 자바스크립트 내장 함수 인코딩과 디코딩 함수 escape( ) encodeURI ( ) 영문 알파벳과 숫자, 일부 특수 문자(@, *, -, _, +, ., / )를 제외하고 모두 인 코딩 1바이트 문자는 %XX의 형태로, 2바이트 문자는 %uXXXX 형태로 변환 encodeURI ( ) escape( ) 함수에서 인터넷 주소에 사용되는 일부 특수 문자( :, ;, /, =, ?, & ) 는 변환하지 않음 encodeURIComponent ( ) 알파벳과 숫자를 제외한 모든 문자를 인코딩 UTF-8 인코딩과 같음
5.11 자바스크립트 내장 함수 인코딩과 디코딩 함수 비슷한 기능을 수행하는 함수가 많은 이유 초기 escape( ) 함수만 있었으나 시간이 지남에 따라 진화 escape( ) 함수는 + 기호를 인코딩하지 않는 문제 현재는 encodeURIComponent ( ) 함수를 가장 많이 사용
5.11 자바스크립트 내장 함수 코드 실행 함수 자바스크립트는 문자열을 코드로 실행할 수 있는 특별한 함수를 제공 eval( ) 함수는 문자열을 자바스크립트 코드로 실행하는 함수
5.11 자바스크립트 내장 함수 코드 실행 함수 코드 실행 함수 예
5.11 자바스크립트 내장 함수 숫자 확인 함수 변수의 숫자가 Infinity와 NaN 같은 특별한 숫자인지 확인하는 함수 대부분의 프로그래밍 언어 : 0으로 숫자를 나누면 오류 발생 및 프로그 램이 멈춤 자바스크립트 : 0으로 숫자를 나누면 infinity 값이 들어감
5.11 자바스크립트 내장 함수 숫자 확인 함수 isFinite( ) 함수 무한대의 수를 확인할 때 사용 infinity 변수
5.11 자바스크립트 내장 함수 숫자 확인 함수 NaN 변수 NaN은 스스로 비교할 수 없음
5.11 자바스크립트 내장 함수 숫자 확인 함수 다음 실행 코드를 예측해 보세요! 답은 152쪽 참조 NaN 확인시 isNan( ) 함수 사용
5.11 자바스크립트 내장 함수 숫자 변환 함수 숫자 변환 함수의 예 : Number( ) 함수 Number( ) 함수의 단점 Number( ) 함수는 숫자로 바꿀 수 없으면 Nan로 변환함
5.11 자바스크립트 내장 함수 숫자 변환 함수 parseInt( ) 함수/parseFloat( ) 함수 변환할 수 있는 부분까지 모두 숫자로 변환
5.11 자바스크립트 내장 함수 숫자 변환 함수 parseInt( ) 함수와 parseFloat( ) 함수의 차이 pasrseInt( ) 함수의 두 번째 매개변수에 진법 입력 해당 진법의 수로 인식 자바스크립트에서 0,0X로 시작하면 10진수가 아닌 8진수,16진수로 변환