본문 바로가기

웹언어/JAVASCRIPT

[JS강좌] 11강 자바스크립트 기본내장객체 - Number와 Math - 오쌤의 니가스터디

728x90
반응형

 

 

 

 

 

 

 

 

** 동영상으로 공부하고 싶은 분은 아래 주소를 클릭하세요!

https://www.youtube.com/watch?v=2M5s64NLa_A 

 

 

 

 

 

 

 * 기본내장객체

종류 설명
String 문자열 객체
Number 숫자 객체
Math 수학 객체
Array 배열 객체
Date 날짜시간객체

- 기본내장객체는 첫글자를 대문자로 작성하는 것이 규칙

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. Number 객체 선언

1) 변수식 선언

## 문법

var 변수명 = 수치;

 

 

## 예시 코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>JS Number 객체</title>
        <script>
            //1. 변수식 선언
            var num01 = 100;

            document.write(num01 + '<br>');

            //typeof(값) : 값(데이터)의 유형을 반환
            document.write(typeof(str01));
        </script>
    </head>
    <body>
        
    </body>
</html>

 

 

 

 

## 코드 결과

 

 

 

 

 

 

 

 

 

 

2) 생성자 함수를 이용한 객체식 선언

- 기본내장객체는 미리 선언되어 있어 생성자 함수를 통해 호출해서 사용하면 됩니다.

 

## 문법

var 변수명 = new Number(수치);

 

 

## 예시코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>JS Number 객체</title>
        <script>
            //2. 객체식 선언
            var num02 = new Number(100);

            document.write(num02 + '<br>');

            //typeof(값) : 값(데이터)의 유형을 반환
            document.write(typeof(num02));
        </script>
    </head>
    <body>
        
    </body>
</html>

 

 

 

## 코드결과

 

 

 

 

 

 

 

3) Number를 이용한 문자열의 숫자변환

## 문법

Number(문자열);

 

 

## Number로 바꾸지 않은 더하기 연산

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>JS Number 객체</title>
        <script>
            //더하기연산
            var left = prompt('좌변입력','정수입력');
            var right = prompt('우변입력','정수입력');
            //prompt함수의 결과값은 문자열
            //+ : 숫자가 아닌 것을 더하면 연결연산자로 변경
            
            alert('결과 : ' + (left + right));
        </script>
    </head>
    <body>
        
    </body>
</html>

 

 

## Number로 바꾸지 않은 더하기 연산의 결과

 

 

 

 

## Number로 바꾼 더하기 연산

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>JS Number 객체</title>
        <script>
            //더하기연산
            var left = prompt('좌변입력','정수입력');
            var right = prompt('우변입력','정수입력');
            //prompt함수의 결과값은 문자열
            //+ : 숫자가 아닌 것을 더하면 연결연산자로 변경

            //데이터를 새롭게 생성하는 것은 아니므로 new라는 키워드를 붙이지 않음
            alert('결과 : ' + (Number(left) + Number(right)));
        </script>
    </head>
    <body>
        
    </body>
</html>

 

 

## Number로 바꾼 더하기 연산의 결과

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

2. Number 객체 속성

- 모든 객체는 속성과 메서드를 갖고 있습니다.

- 물론 경우에 따라 속성만 갖고 있을수도, 메서드만 갖고 있을수도 있습니다.

 

 

 

1) Number객체의 속성의 종류

종류 설명
MAX_VALUE 자바스크립트의 숫자가 나타낼 수 있는 최대의 숫자
MIN_VALUE 자바스크립트의 숫자가 나타낼 수 있는 최소의 숫자
NaN 자바스크립트의 숫자로 나타낼 수 없는 숫자
POSITIVE_INFINITY 양의 무한대 숫자
NEGATIVE_INFINITY 음의 무한대 숫자

 

 

 

 

2) NaN 속성

- NaN(Not a Number)라는 뜻으로 수식의 결과가 숫자가 아니라는 뜻입니다.

 

##  예시 코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>JS Number 객체</title>
        <script>
            document.write(10 * '안녕하세요');
        </script>
    </head>
    <body>
        
    </body>
</html>

- 위의 코드를 보면 숫자와 문자열을 사칙연산자 중 하나인 곱하기연산자(*)로 계산했습니다.

 

 

## 결과

- 결과값이 [NaN]이라는 키워드로 나오는 것을 확인할 수 있습니다.

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

3. Number 객체 메서드

- 메서드는 많이 있습니다. 표를 통해 전체적으로 정리 후 아래 한개만 예제로 보도록 하겠습니다.

 

메서드 종류 설명
toString() 숫자를 문자열로 반환
toExponential(number) 숫자를 매개변수인 number를 통해 지수 표시로 바꿔서 문자열로 반환
toFixed(number) 숫자를 매개변수인 number인 소수자릿수로 변환하여 문자열로 반환
ex) (9.656).toFixed(2) => 9.65 
toPrecision(number) 숫자를 매개변수에 써있는 number만큼만 숫자를 반환
ex) (9.656).toPrecision(2) => 9.6

 

 

 

 

 

 

 

1) toFixed()

- 소수로된 실수를 매개변수만큼 자릿수로 반환하는 함수

 

 

## 문법

Number객체.toFixed(소수자릿수);

 

 

## 문제

사용자에게 국어, 영어, 수학점수를 입력받아 평균을 구하시오.
//단, 소수둘째자리까지만 표시
//평균 : XX.XX점
더보기

## 예시코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>JS Number 객체</title>
        <script>
            var kor = prompt('국어점수입력','0~100');
            var eng = prompt('영어점수입력','0~100');
            var math = prompt('수학점수입력','0~100');

            var avg = (Number(kor) + Number(eng) + Number(math)) / 3;

            alert('평균 : ' + avg.toFixed(2) + '점');
        </script>
    </head>
    <body>
        
    </body>
</html>

 

 ## 코드 결과

 - 소수 둘째자리까지만 반환되는 것을 확인할 수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

4. Math 객체

- Math객체는 수학객체로 기본내장객체 중 유일하게 new 키워드를 사용해 생성하지 않습니다.

- 실제 숫자를 갖고 있는 속성과 메서드를 통해서 수학적 처리를 하도록 도와줍니다.

 

 

 

 

 

1) Math객체의 속성

- 모든 객체는 속성과 메서드를 갖고 있습니다.

- 물론 경우에 따라 속성만 갖고 있을수도, 메서드만 갖고 있을수도 있습니다.

- Math객체 속성의 종류를 표로 확인해보도록 하겠습니다. 

 

속성 종류 설명
Math.E 오일러의 수인 자연상수 e를 반환
Math.PI 원주율 반환
Math.SQRT2 2의 제곱근을 반환
Math.SQRT1_2 1/2의 제곱근을 반환
Math.LN2 2의 자연 로그를 반환
Math.LN10 10의 자연 로그를 반환
Math.LOG2E E의 밑이 2 인 로그를 반환
Math.LOG10E E의 밑이 10 인 로그를 반환

 

 

 

## 예시 코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>JS Math 객체</title>
        <script>
            document.write(Math.PI);
        </script>
    </head>
    <body>
        
    </body>
</html>

 

 

## 코드 결과

그 유명한 3.14죠. 원주율입니다.

 

 

 

 

 

 

 

 

 

 

 

2) Math객체의 메서드

- 메서드는 많이 있습니다. 표를 통해 전체적으로 정리 후 아래 몇개만 예제로 보도록 하겠습니다.

메서드 종류 설명
Math.abs(x) x의 절대값을 반환
Math.ceil(x) x보다 크거나 같은 가장 작은 정수를 반환(올림)
Math.cos(x) x의 코사인 값을 반환
Math.exp(x) 자연 로그의 x제곱을 반환
Math.floor(x) x보다 작거나 같은 가장 큰 정수를 반환(내림)
Math.log(x) x의 로그 값을 반환
Math.max(x,y,z,...)  매개변수 중 가장 큰 값을 반환
Math.min(x,y,z,...) 매개변수 중 가장 작은 값을 반환
Math.pow(x,y) x의 y제곱을 반환
Math.random() 0부터 1미만의 임의의 수를 반환
Math.round(x) x를 반올림하여 반환
Math.sin(x) x의 사인값을 반환
Math.sqrt(x) x의 제곱근을 반환
Math.tan(x) x의 탄젠트 값을 반환 

 

 

 

## 실수를 정수로 반환하는 코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>JS Math 객체</title>
        <script>
            var num = 32.6;

            document.write('반올림 : ' + Math.round(num) + '<br>');
            document.write('내림 : ' + Math.floor(num) + '<br>');
            document.write('올림 : ' + Math.ceil(num) + '<br>');
        </script>
    </head>
    <body>
        
    </body>
</html>

 

 

## 실수를 정수로 반환하는 결과

- 소수자리가 5이상이기 때문에 반올림도 숫자가 올라간 상태로 정수로 반환합니다.

 

 

 

 

## random()을 이용한 1~10사이의 랜덤한 숫자 반환 예시 코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>JS Math 객체</title>
        <script>
            var num = Math.floor(Math.random() * 10) + 1;

            alert(num);
        </script>
    </head>
    <body>
        
    </body>
</html>

- random() 메서드는 0~1 미만사이의 숫자가 나오기때문에 어떤 숫자를 곱해도 0으로 처리됩니다.

- 그래서 마지막에 더하기 1을 해줘야 마지막 원하는 숫자가 나옵니다. 

- 그리고 소수자리로 나올 것이므로 내림처리해서 정수로 반환하기 위해 floor()메서드를 사용했습니다.

 

 

 

 

## random()을 이용한 1~10사이의 랜덤한 숫자 반환 코드 결과

- 1~10사이 숫자만 반환되는 것을 확인할 수 있습니다. 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형