ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • day39 - JavaScript(function, scope, 객체)
    KIC/JavaScript,CSS 2021. 8. 10. 00:19
    반응형

     

     

     

    [scope]

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="EUC-KR">
        <title>Insert titlte here</title>
        <script>
            let pi = 3.14
            console.log(`파이 값은 ${pi} 입니다.`)
    
            //블록을 사용한 스코프 생성
            {
                let pi = 3.141592
                console.log(`파이 값은 ${pi} 입니다.`)
            }
            console.log(`파이 값은 ${pi} 입니다.`)
    
            //함수 블록을 사용한 스코프 생성
            function sample() {
                let pi = 3.141592
                console.log(`파이 값은 ${pi} 입니다.`)
            }
    
            sample()
            console.log(`파이 값은 ${pi} 입니다.`)
    
    
        </script>
    </head>
    
    <body>
    </body>
    
    </html>

     

     

     

     

    [익명 함수]

    -> 익명함수는 한 페이지에서 재정의가 가능하다.

     

    -> 선언적 함수 또한 top - down으로 재정의가 된다.

     

    -> 자바 스크립트에서는 선언적 함수를 먼저 정의하고 후에 익명 함수를 정의하기 때문에 아래 코드는 결과로 익명 함수가 나온다.

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="EUC-KR">
        <title></title>
        <script>
            // 익명 함수를 정의 한다.
            함수 = function () {
                console.log('익명 함수입니다.')
            }
    
            // 선언적 함수로 재정의
            function 함수() {
                console.log('선언적 함수입니다.')
            }
    
            //함수 호출
            함수()
    
        </script>
    </head>
    
    <body>
    </body>
    
    </html>

     

     

    [객체]

    -> 자바스크립트는 속성과 메소드를 가질 수 있는 모든것이 객체이다.

     

    -> 추천하는 방법은 아니지만 배열과 함수도 객체로 사용할 수 있다고 한다.

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="EUC-KR">
        <title></title>
        <script>
            //변수를 선언
            const pet = {
                name: '구름',
                eat: function (food) {
                    alert(this.name + '은/는' + food + '을/를 먹습니다.')
                }
            }
    
            //메소드 호출하기
            pet.eat('밥')
        </script>
    </head>
    
    <body>
    </body>
    
    </html>

     

     

     

     

     

     

     

     

    [JSON]

    -> JSON의 약자는 Java Script Object Notation 이다.

     

    -> stringify는 자바 스크립트의 객체를 JSON형식으로 바꾼다.

     

    -> parse는 String type의 json 변수를 Object로 변환해준다.

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="EUC-KR">
        <title></title>
        <script>
            //객체를 선언
            const student = {}
            student.이름 = '나자바'
            student.취미 = '피아노'
            student.장래희망 = '프로그래머'
    
            delete student.장래희망
    
            //출력
            console.log(JSON.stringify(student, null, 2))
    
            console.log(typeof student)
            console.log(typeof JSON.stringify(student))
            
            
    
        </script>
    </head>
    
    <body>
    </body>
    
    </html>

     

     

     

    [ex 2]

    <!DOCTYPE html>
    <html>
    
    <head>
      <title></title>
      <script>
        // 자료를 생성합니다.
        const data = [{
          name: '혼자 공부하는 파이썬',
          price: 18000,
          publisher: '한빛미디어'
        }, {
          name: 'HTML5 웹 프로그래밍 입문',
          price: 26000,
          publisher: '한빛아카데미'
        }]
    
        // 자료를 JSON으로 변환합니다.
        const json = JSON.stringify(data)
        console.log(json)
    
        // JSON 문자열을 다시 자바스크립트 객체로 변환합니다.
        console.log(JSON.parse(json))
      </script>
    </head>
    
    <body></body>
    
    </html>

     

     

     

     

     

     

    [object2]

    -> 이미 자바스크립트에서 정의한 Number 객체에 prototype으로 속성 및 메서드 추가가 가능하다.

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="EUC-KR">
        <title></title>
        <script>
            const s1 = 277
            const s2 = new Number(150)
            alert(typeof s1)
            alert(typeof s2)
    
            s2.sample = 10
            console.log(s2)
    
            alert(s2)
            alert(s2.sample)
            alert("s1 number : " + s1.valueOf())
    
    
            // Number에 prototype으로 method를 추가할 수 있다.
            Number.prototype.power = function (n =2) {
                return this.valueOf() **n
            }
    
            //Number 객체의 power() 메소드를 사용하기
            const a = 12
            console('a.power()' , a.power()) // 12의 제곱(기본값)
            console('a.power(3)' , a.power(3)) // 12의 세제곱
            console('a.power(4)' , a.power(4)) // 12의 네제곱
    
        </script>
    </head>
    
    <body>
    </body>
    
    </html>

    300x250

    댓글

Designed by Tistory.