본문 바로가기

국비필기노트/HTML & CSS & JS

JS_주요 내장 함수

▶내장함수 종류

 

문자열 함수

alert 주어진 문자열을 확인 대화창으로 화면에 표시한다. 
confirm 주어진 문자열이 표시되는 확인/ 취소 대화창을 화면에 표시
prompt 주어진 문자열이 제목으로 표시되는 값을
입력받기 위한 대화창 
eval 주어진 문자열을 수식으로 변환하여 리턴
Number 주어진 문자열의 변수가 숫자모양일 경우
실제 숫자형으로 변환하여 리턴
parseInt 주어진 문자열의 변수가 숫자모양일 경우
실제 숫자형으로 변환하여 리턴
inNaN 주어진 문자열이 숫자형식이 아니면(문자열..) true,
숫자 형식이면 flase 를 리턴한다.

 

▶내장함수 예시

1) eval(문자열)

 

 

1
2
3
4
5
6
7
8
9
let a = "1+1";
let b = 1+1;
let c = eval("1+1");
 
console.log(a); // 1+1
console.log(b); // 2
console.log(c); // 2
 
 
cs

2) Number(문자열) & parseInt(문자열)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
let value = "100";
 
//Number와 parseInt에 값 할당
 
let num1 = Number(value); // 100
let num2 = parseInt(value); // 100
 
//Number와 parseInt에 할당한 값에 +1
 
let r1 = value + 1//1001
let r2 = num1 + 1//101
let r3 = num2 + 1//101
 
 
cs

 

 

전달되는 파라미터가 정수형태의 문자열인 경우 두 함수는 동일한 결과를 리턴하지만, 실수형태를 갖는 문자열을 전달할 경우 두 함수는 서로 다른 결과를 리턴한다.

 

-. Number: 주어진 문자열이 "100.1"일 경우 100.1이라는 실수 형태로 변환

-. parseInt: 주어진 문자열이 "100.1"일 경우 소수점 자리를 내림하고 정수 형태인 100만 리턴 

3) isNaN(문자열)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//Number이 "a"라는 문자형태 문자값을 받을 경우
 
let a = Number("a");
console.log(a); // NaN 
 
//NaN에 숫자 1을 더할 경우
 
let a_sum = a + 1;
console.log(a_sum); //NaN
 
 
//NaN에 문자열을 할경우
 
let a_str = a + "str";
console.log(a_str); // NaNstr (문자열의 나열)
cs

 

 

Number함수와 parseInt 함수는 파라미터로 전달된 문자열이 숫자형태("123")가 아닌 문자형태("abc")일 경우에 "NaN"이라는 문자열 값을 리턴한다.  즉, NaN은 문자형태로 연산이 불가능함으로 "NaN"값과 숫자값과의 연산은 모든 결과가 "NaN"이다.

 

# 변수의 NaN여부를 검사하는 함수: is NaN

isNaN함수는 파라미터로 전달되는 변수의 NaN여부를 boolean형태로 리턴한다. 

 

-. true: 파라미터가 숫자로 변환할 수 없는 문자열인 경우(ex."abc")

-. false: 파라미터가 숫자모양을 한 문자열이거나 실제 숫자형 변수일 경우(ex."123",123)

 

parseInt함수나 Number함수의 정상동작을 보장하기 위해서는 파라미터를 전달하기 전에 해당 값이 NaN이 아니라는 것을 검사해야한다.

 

isNaN함수의 결과를 부정하면, 그 값은 숫자값이거나 숫자형으로 변환가능한 문자열이라는 의미가 된다. 

 

*예시

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
let v1 = "가나다라";
let v2 ="12345";
 
let is_num1 = !isNaN(v1); //true -> false로 변환
let is_num2 = !isNaN(v2); //false -> true로 변환
 
 
//is_num1이 참이라면 v1, false라면 v2
//출력값: 가나다라는 숫자가 아닙니다.
if(is_num1){
    console.log(v1+"는 숫자입니다."); 
}else{
    console.log(v1+"는 숫자가 아닙니다.");
}
 
//is_num2이 참이라면 v1, false라면 v2
//출력값: 12345는 숫자입니다.
if(is_num2){
    console.log(v2+"는 숫자입니다."); 
}else{
    console.log(v2+"는 숫자가 아닙니다.");
}
 
cs