Hoon222y

[0109] 함수 본문

코딩/교육

[0109] 함수

hoon222y 2019. 1. 9. 09:49

5.11 자바스크립트 내장 함수 


타이머 함수 

 setTimeout( function, millisecond) 

 일정 시간 후 함수를 한번 실행 ( 일회성)

 setInterval( function, millisecond)

 일정 시간 마다 함수를 반복해서 실행 (무한반복)

 clearTimeout(id)

 일정 시간 후 함수를 한번 실행하는 것을 중지

 clearInterval(id)

 일정 시간마다 함수를 반복하는 것을 중단

 setTimeout과 setInterval 두 함수는 반환값은 고유의 id 값을 가지고 있는데 이를 이용하여 clearTimeout, clearInterval을 사용할 수 있다. 


[코드5-30]

<head>

    <script>

        // 1초마다 함수를 실행합니다.

        var intervalID = setInterval(function () {

            alert('<p>' + new Date() + '</p>');

        }, 1000);

        // 10초 후 함수를 실행합니다.

        setTimeout(function () {

            // 타이머를 종료합니다.

            clearInterval(intervalID);

        }, 10000);

    </script>

</head>

-> 이걸 alert가 아닌  1초 간격마다 바디에 누적되게 출력할 수 있도록 수정해 보아라.

<head>

    <script>

        window.onload = function(){

        var intervalID = setInterval(function () {

            document.body.innerHTML += '<p>' + new Date() + '</p>';

        }, 1000);

        setTimeout(function () {

            clearInterval(intervalID);

        }, 10000);

        }

    </script>

</head>


인코딩과 디코딩 함수 

인코딩 : 문자를 컴퓨터에 저장하거나 통신에 사용할 목적으로 부호화 하는 방법

디코딩 : 인코딩을 원래대로 되돌리는 것

    <script>

var myName = '손흥민';

var encodeName = encodeURIComponent(myName);

window.onload = function(){

document.body.innerHTML = encodeName;

document.body.innerHTML += decodeURIComponent(encodeName);

}

    </script>

의 결과는%EC%86%90%ED%9D%A5%EB%AF%BC손흥민이다.


 

 

 

 

 

 

 

 

 

 

 

 

 적절한과 최소한과 대부분의 차이는? 

escape : 영문 알파벳과 숫자. 일부 특부 문자(@,*,-,_,+,.,\)를 제외하고 모두 인코딩한다.

encodeURI : 


코드 실행 함수

eval(string) :  string을 자바스크립트 코드로 실행한다. 

[코드 5-32]

<head>

    <script>

        // 문자열을 생성합니다.

        var willEval = '';

        willEval += 'var number = 10;';

        willEval += 'alert(number);';

        // eval() 함수를 호출합니다.

        eval(willEval);

    </script>

</head>

여기에서 var number = 10을 넣는데 이렇게 안쓰지만 어딘가로부터 동적으로 저러한 문자열을 가져온다는것을 표현하기 위함. 

 eval 함수가 시행된 이후에도 number라는 변수는 계속해서 사용할 수 있을까? 된다! 


숫자 확인 함수

- 변수의 숫자가 INfinity와 NaN 같은 특별한 숫자 인지 확인하는 함수

-자바스크립트에서는 0으로 나누면 infinity값이 들어간다. 

 isFinite() 

 number가 무한한 값인지 확인 

 isNaN()

 number가 NaN인지 확인 


숫자 변환 함수 

[코드 5-39]

<head>

    <script>

        var won = '1000원';

        var dollar = '1.5$';

        alert(Number(won) + ' : ' + Number(dollar));

    </script>

</head>

 number 함수는 숫자로 바꿀 수 없으면  NaN 으로 변환한다. 즉 결과는 NaN : NaN 이다. 이러한 문제를 해결하기 위해 

<head>

    <script>

        var won = '1000원';

        var dollar = '1.5$';

        alert(parseInt(won) + ' : ' + parseInt(dollar));

        alert(parseFloat(won) + ' : ' + parseFloat(dollar));

    </script>

</head>

를 통해 해결하면 결과값이 1000 1 / 1000 1.5 가 나오게 된다. 









Comments