ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바 스크립트 자료형
    Javascript 2023. 5. 4. 12:45

    자료형이란 - 컴퓨터가 처리하는 자료에 형태

    숫자형

    1. 정수 - 소수점이 없는 숫자, 표현 방법에 따라 8진수, 10진수, 16진수

    2. 실수 - 소수점이 있는 숫자, (! 자바스크립트에서는 정밀한 실수 계산을 못 함)

    0.1 + 0.5

    0.1 + 0.2

     

    부동소수점 방식으로 숫자를 표현하는 이진법의 한계 때문에 발생하는 문제입니다.
    부동소수점 방식은 소수점 위치가 고정되어 있지 않고, 이진법으로 숫자를 표현하기 때문에 무한 소수의 경우 근사값으로 표현되어 오차가 발생할 수 있습니다.

    무한 소수(infinite decimal)란, 소수점 이하의 자리수가 무한히 반복되는 소수를 말합니다. 예를 들어, 1/3을 소수로 나타내면 0.3333...과 같이 소수점 이하가 무한히 반복됩니다. 이러한 소수는 유한한 자리수로 정확히 표현할 수 없기 때문에, 근사값으로 표현하거나, 무한 반복되는 자리수를 생략하여 유한한 자리수로 표현해야 합니다.
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <script>
            // 한줄
            /*여러줄 주석*/
            let result = (0.1 + 0.2).toFixed(1);
            console.log(result);
        </script>
    </body>
    </html>

    toFixed 를 써서 소수 자리수까지 잘라내서 표현할 수있다.

     

     

     

     

    문자형 - 홒따옴표, 쌍따옴표로 표기를 한다.

    논리형 - true, false

    undefine - 자료형이 정의되지 않았을 때 ex) let age;

    null - 처음에 할당된 값이 더 이상 유효하지 않다는 의미

     

     

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <script>
            let first;
            console.log(first);
            let second = 100;
            console.log(second);
            second = null;
            console.log(second);
        </script>
    </body>
    </html>

     

     

     

     

    배열 - 하나의 변수에 여러 값을 저장, 인덱스 0부터 시작, 표기는 대괄호 [ ] 로 사용한다.

     

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <script>
           let store = ["바지","상의",100, true];
           console.log(store);
           console.log(store[3]);
           console.log(store[2]);
           console.log(store[1]);
           console.log(store[100]);
        </script>
    </body>
    </html>

     

     

    객체 - 여러 자료형을 중괄호 {}로 묶는 것 , 키(key), 값(value)을 한 쌍으로 여러 자료형을 저장한다.

    객체 리터럴 - 오른쪽에 표기되는것

     

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <script>
            let student = {
                fistName : "홍아",
                lastName : "항아",
                age : 30,
                address : "부산"
            };
            console.log(typeof student);
            console.log(student.fistName);
        </script>
    </body>
    </html>

     

     

    자바스크립트 자료형의 특징
    느슨한 자료형 체크(weak datatype check) 자바스크립트는 미리 변수의 자료형을 지정하지 않음 변수를 지정하고 원하는 값을 할당만 하면 됨

     

    함수 선언(함수정의)

    function 예역어를 사용하고, {}안에 실행해야 할 명령어를 작성

     

    함수 호출( 함수 실행)

    함수 이름을 사용해서 함수를 실행

     

    함수 선언은 어디에 두어야 할까.

     

    addNumber();
    
    function addNumber{
    ...
    }
    
    addNumber();
    주의
    함수 호출 시 HTML 요소 중 렌더링이 완료 되기 전에 호출하는 코드를 실행 한다면 요소를 찾을 수 없어 오류가 발생 합니다.

     

    let 과 const

    let - 프로그램 안에 값이 변할 수 있는 변수

    const - 프로그램 안에서 값이 변하지 않는 변수

     

    변수의 스코프

    호이스팅 없음

     

    호이스팅이란 해당 스코프의 최상단으로 함수,변수가 끌어올려진것 같은 현상을 말한다.

     

     

    변수의 재선언 불가 - 같은 스코프 안에 같은 변수를 다시 선언할 수 없음.

     

    매개변수(parameter) 와 인수(argument) 차이점

    매개변수
    - 함수를 실행하기 위해 필요하다고 지정하는 값
    - 함수를 선언할 때 함수 이름 옆의 괄호 안에 매개변수 이름을 넣음
    function addNumber(a, b){
    let sum = a +b;
    return sum;
    }
    인수 (argument)
    - 함수를 실행하기 위해 필요하다고 지정하는 값
    -함수를 실행할 때 매개변수로 넘겨 주는 값
    addNumber(19, 10);

     

    익명 함수

    이름이 없는 함수
    함수 자체가 식(Expression) 이기 때문에 함수를 변수에 할당하거나 함수의 매개변수로
    사용 할 수도 있음 (일급 객체)
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    
    <body>
        <script>
            let add = function (a, b) {
                return a + b;
            }
            console.log(add); // add는 함수 자체가 식(표현식)이다.
            console.log(add(10, 10));  // 함수 호출은 괄호 + 모양 맞추기
            console.log(add(20, 10));
            console.log(add(30, 10));
            console.log(add(15, 10));
        </script>
    </body>
    </html>

     

     

     

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    
    <body>
        <script>
            // 즉시 실행 함수
            let result2 = (function(){
                return 10 + 10;
            })();
            // console.log(result2);
            // 즉시 함수가 실행 되었기 때문에 result2 함수식이 아니라 변수에 값이 담긴 상태
        </script>
    </body>
    </html>

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    
    <body>
        <script>
            // 즉시 실행 함수 : 매개변수와 
            // 인수를 사용하는 코드를 작성하시오.
            
            const result = (function(a,b){
                return a + b
            }
                )(100,200);
            console.log(result);
    
        
        </script>
    </body>
    </html>

     

    화살표 함수

    ES6 이후 버전에서 -> 표기법을 사용해서 함수 선언을 간단하게 작성

     

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <script>
            const hi = function(){
                return "반가워";
            }
            console.log(hi);
            console.log(hi());
            console.log("---------------");
            const hi2 = () => {return "야 반가워"};
            console.log(hi2);
            console.log(hi2());
            console.log("-------------");
            /*
            화살표 함수를 사용할 때 리턴 키워드에 생략 여부
            const hi2 = () => {return "야 반가워"}
            const hi2 = () => "야 반가워";
            let sum = (a ,b) => {return a + b}
            let sum = (a ,b) =>  a + b
            */
    
            const hi3 = () => {return "안녕하세요"};
            const hi4 = () => "안녕하세요";
            console.log(hi3());
            console.log(hi4());
            let sum = (a, b) => {return 20 + 10}
            console.log(sum());
            let sum2 = (a, b) => a + b;
            console.log(sum2());
        </script>
    </body>
    </html>

     

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            .container{
                position: relative;
                width: 200px;
                height: 300px;
            }
            .btn{
                position: absolute;
                bottom: 10px;
                left: 80px;
                background-color: rgba(255, 255, 255, 0.5);
                border: 100px;
                color: #000;
                font-size: 16px;;
            }
    
        </style>
    </head>
    <body>
    
        <div class="container">
            <img src="https://picsum.photos/id/237/200/300" alt="">
            <button onclick="showDetail()" class="btn">상세보기열기</button>
            <br>
            <div id="desc" style="display: none;">
                <h1>귀염뽀짝 강아지</h1>
                <div>귀염 귀염</div>
                <button onclick="hideDetail()">상세보기닫기</button>    
            </div>
        </div>
            <script>
                // 함수 1
                function showDetail(){
                    document.querySelector("#desc").style.display = "block";
                    document.querySelector(".btn").style.display = "none";
                }
                // 함수 2
                function hideDetail(){
                    document.querySelector("#desc").style.display = "none";
                    document.querySelector(".btn").style.display = "block";
                }
    
            </script>
    
    </body>
    </html>

     

     

     

    'Javascript' 카테고리의 다른 글

    JQuery  (0) 2023.05.08
    반복문 리스트, 토글 기능, 제이쿼리  (0) 2023.05.08
    2023-05-08 복습  (0) 2023.05.08
    자바스크립트 객체  (0) 2023.05.04
    자바스크립트 규칙  (0) 2023.05.04
Designed by Tistory.