1) 타이머 함수
시간 경과에 따른 명령 실행 함수
setTimeout(callback, ms) : 시간(ms) 경과 후 콜백함수를 한번만 호출하여 콜백함수의 명령을 실행하는 함수
→ timeoutId(setTimeout 함수를 구분하기 위한 식별자) 반환
clearTimeout(timeoutId) : timeoutId의 setTimeout 함수의 실행을 취소하는 함수
setInterval(callback, ms) : 시간(ms) 경과마다 콜백함수를 반복적으로 호출하여 콜백함수의 명령을 실행하는 함수
→ intervalId(setInterval 함수를 구분하기 위한 식별자) 반환
clearInterval(intervalId) : intervalId의 setInterval 함수의 실행을 취소하는 함수
setInterval 함수 예시)
setInterval 함수를 이용해 콜백함수에 익명함수를 전달하여 익명함수의 명령을 1초마다 반복 실행할 수 있다.
var id=setInterval(function() {
alert("setInterval 함수에 의해 반복 실행되는 명령");
}, 1000);
콜백함수에 화살표함수를 전달하여 화살표함수의 명령을 1초마다 반복 실행 후,
5초 경과 후 콜백함수를 호출하여 setInterval 함수의 실행을 취소
//콜백함수에 화살표함수를 전달하여 화살표함수의 명령을 반복 실행
var id=setInterval(() => alert("setInterval 함수에 의해 반복 실행되는 명령"), 1000);
//5초 경과 후 콜백함수를 호출하여 setInterval 함수의 실행을 취소
setTimeout(function() {
clearInterval(id);
},5000);
2) 인코딩, 디코딩 함수
부호화(복호화) 관련 함수
encodeURI(string) 함수 또는 encodeURIComponent(string) 함수
: 매개변수로 일반 문자값을 전달받아 부호화된 문자값으로 변환하여 반환하는 함수 - 부호화 처리 함수
decodeURI(string) 함수 또는 decodeURIComponent(string) 함수
: 매개변수로 부호화 처리된 문자값을 전달받아 일반 문자값으로 변환하여 반환하는 함수 - 복호화 처리 함수
URL 주소는 영문자, 숫자, 일부 특수문자로만 표현이 가능하다.
→ URI(웹자원의 식별자) = URL(웹자원의 위치) + QueryString(전달값)
URI 주소의 질의문자열(QueryString)을 이용하여 웹프로그램에게 필요한 값을 전달할 수 있다.
하지만 질의문자열에 URI 주소로 사용이 불가능한 문자가 포함될 수 있다는 문제점이 발생할 수 있다. 사용이 불가능한 문자가 포함되면 값이 비정상적으로 전달된다.
<a href="15 encode.html?name=홍길동">링크</a>
이를 해결하기 위해서는 질의문자열에 URI 주소로 사용 불가능한 문자가 포함된 경우, 부호화 처리하여 전달하면 된다.
- 부호화(Encode) : URI 주소로 사용 불가능한 문자를 URI 주소로 사용 가능한 문자(유니코드)로 변환
var name="홍길동";
alert("name = "+name);//name = 홍길동
//부호화 처리
var encodeName=encodeURIComponent(name);
alert("encodeName = "+encodeName);//encodeName = %ED%99%8D%EA%B8%B8%EB%8F%99
//복호화 처리
var decodeName=decodeURIComponent(encodeName);
alert("decodeName = "+decodeName);//decodeName = 홍길동
3) eval 함수
eval(string) : 매개변수로 문자값을 전달받아 자바스크립트 명령으로 변환하여 실행하는 함수
eval 함수를 사용하면 변수에 저장된 문자값이 명령으로 변환되어 실행된다.
var text="20 + 10";
alert(text);//20 + 10 - 변수에 저장된 문자값 출력
alert(eval(text));//30 - 변수에 저장된 문자값이 명령으로 변환되어 실행
사용자가 입력한 문자값이 명령으로 변환되어 실행된다.
var operation=prompt("연산식을 입력해 주세요.");
alert("연산결과 = "+eval(operation));
ex)
변수에 저장된 값이 함수가 아닐때는 함수 호출이 불가능하다.
var display="function() { alert('함수의 명령 실행'); }";
alert("변수의 자료형 = "+typeof(display));//변수의 자료형 = string
display();//에러발생
이런 경우 eval 함수를 사용하여 변수에 저장된 문자값을 실행할 수 있다.
→ 함수가 저장된 문자값을 자바스트립트 명령으로 변환되어 함수가 먼저 선언되므로 앞과뒤에 ( ) 기호를 사용하여 우선 처리해주어야 한다.
var display="function() { alert('함수의 명령 실행'); }";
alert("변수의 자료형 = "+typeof(eval("("+display+")")));
eval("("+display+")")();//문자값으로 저장된 함수를 eval 함수를 사용하여 선언한 후 직접 호출
4) isNaN 함수
isNaN(value) : 매개변수로 전달받는 값이 숫자로만 구성된 경우 [false]를 반환하고 숫자로만 구성되지 않은 경우 [true]를 반환하는 함수
예시)
var value="123abc";
if(isNaN(value)) {
alert("숫자로만 구성된 값이 아닙니다.")
} else {
alert("숫자로만 구성된 값입니다.");
}
//숫자로만 구성된 값이 아닙니다.
5) isFinite 함수
isFinite(value) : 매개변수로 전달받은 값이 무한수인 경우 [false]를 반환하고 유한수인 경우 [true]를 반환하는 함수
자바스크립트는 모든 숫자값이 유한수로 표현되지만 유일하게 무한수를 반환하는 경우는 숫자를 0으로 나누었을 때이다.
alert(10/4);//2.5
alert(10/3);//3.3333333333333335
alert(10/0);//Infinity - 무한수
isFinite 함수 사용 예시
var num1=10, num2=0;
if(isFinite(num1/num2)) {
alert(num1/num2);
} else {
alert("0으로 나눌 수 없습니다.");
}
//0으로 나눌 수 없습니다.
6) 숫자값 변환 함수
parseInt(value) : 매개변수로 전달받은 값을 정수값으로 변환하여 반환하는 함수
parseFloat(value) : 매개변수로 전달받은 값을 실수값으로 변환하여 반환하는 함수
parseInt(value) : 매개변수로 전달받은 값을 정수값으로 변환하여 반환해준다.
var result=50/3;
alert("결과 = "+result);//결과 = 16.666666666666668
alert("결과 = "+parseInt(result));//결과 = 16
parseInt(string, radix) : 매개변수를 전달받은 특정 진수의 문자값을 10진수의 정수값을 변환하여 반환해준다.
alert("16진수 : 123 = 10진수 : "+parseInt("123", 16))//16진수 : 123 = 10진수 : 291
alert("16진수 : abc = 10진수 : "+parseInt("abc", 16))//16진수 : abc = 10진수 : 2748
alert("8진수 : 123 = 10진수 : "+parseInt("123", 8))//8진수 : 123 = 10진수 : 83
문자값을 숫자값으로 바꿔 처리하고자 할 때도 parseInt(),parseFloat()를 사용한다.
var num="100";
alert(num+200);//100200 - 문자값 결합
//매개변수로 문자값을 전달받아 정수값으로 변환하여 반환
alert(parseInt(num)+200);//300 - 산술 연산
var num="10.5";
alert(num+20);//10.520 - 문자값 결합
//매개변수로 전달받은 문자값을 실수값으로 변환하여 반환
alert(parseFloat(num)+20);//30.5 - 산술 연산
Number 함수를 사용해도 parseInt 함수와 마찬가지로 문자값을 숫자값(정수값)으로 변환할 수 있다.
var num="100";
alert(parseInt(num)+200);//300 - parseInt 함수를 사용하여 문자값을 숫자값(정수값)으로 변환
alert(Number(num)+200);//300 - Number 함수를 사용하여 문자값을 숫자값(정수값)으로 변환
parseInt 함수와 Number 함수의 차이점
parseInt 함수를 사용하면 매개변수로 전달받은 문자값의 앞부분의 숫자만 잘라내어 정수값으로 변환하여 반환한다.
var num="100abc";
alert(parseInt(num)+200);//300
Number 함수를 사용하면 매개변수에 전달받은 문자값에 숫자 외 문자가 존재할 경우 NaN가 발생한다.
var num="100abc";
alert(Number(num)+200);//NaN
'학원 > 복기' 카테고리의 다른 글
[JavaScript] 프로토타입 메소드(Prototype Method) (0) | 2023.06.07 |
---|---|
[JavaScript] 클래스 함수 / 클래스 (0) | 2023.06.06 |
[JavaScript] 콜백함수(Callback Function) / 클로저함수(Closure Function) (0) | 2023.06.06 |
[JavaScript] Return 명령 (0) | 2023.06.06 |
[JavaScript] 함수의 매개변수(Parameter) - 인자(Argument) (0) | 2023.06.06 |