728x90
반응형
SMALL
// static
        // 정적 프로퍼티 및 메소드를 생성
        // 클래스 레벨 메소드(스테틱을 사용한 메소드)에서는 this를 참조할수 없다.
        // 메모리에 먼저 올라가기 때문에 값을 받아올수가 없음
        class Fruit {
            static count_fruits = 10; // 객체를 생성하지 않아도 메모리에 올라가 있다.

            constructor(name, emogi){
                this.name = name;
                this.emogi = emogi;
            }
            dispaly = () => {
                console.log(`${this.name}: ${this.emogi}`);
            }

            static makeBanana(){
                return new Fruit('banana', '🍌')
            }
        }

        const apple = new Fruit('apple', '🍎')
        const orange = new Fruit('orange', '🍊')
        console.log(apple);
        console.log(apple.name);
        console.log(orange);
        console.log(orange.name);
        console.log(Fruit.count_fruits);
        const banana = Fruit.makeBanana();
        console.log(banana);
        console.log('-----------------------------');

        class Dog{
            #name; // private 해당 속성이 적용된 클래스 외에서는 접근이 불가능함
            #color;
            constructor(name, color){
                this.#name = name;
                this.#color = color;
            }

            // 프로퍼티명과 꼭 일치할 필요는 없음
            set name(value){
                console.log('set', value);
                this.#name = value;
            }

            get name(){
                return `이름: ${this.#name}`;
            }

            run = () => {
                console.log(`${this.#color} 색상의 이로치 ${this.#name}이(가) 달립니다.`);
            }

            #eat = () => {
                console.log(`${this.name}는 먹습니다.`);
            }

            colorEat = () => {
                this.#eat();
            }
        }
       
        const Rucy = new Dog('루시', 'white');
        // Rucy.name = '류씨'; // name이 새로 생성됨
        console.log(Rucy);
        //Private field '#name' must be declared in an enclosing class
        // Rucy.#name = '류씨';
        console.log(Rucy);
        Rucy.name = '피카츄';
        console.log(Rucy);
        console.log(Rucy.name);
        Rucy.run();
        // Rucy.eat();
        Rucy.colorEat();
console.log('------------------------------');
        // 문제 카운터 만들기
        // 카운터를 0으로 값을 초기화 한뒤 하나씩 숫자를 증가할 수 있는 메소드를 구현
        class Counter {
            #value
            constructor(value){
                if(isNaN(value) || value < 0) this.#value = 0;{
                    this.#value = 0;
                }else{
                    this.#value = value;
                }
            }

                get value(){
                    return this.#value;
                }
                increment = () => {
                    this.#value++;
                }

        }
           

        const cnt = new Counter(0);
        cnt.increment(); //1
        cnt.increment(); //2
728x90
반응형
LIST

'JavaScript' 카테고리의 다른 글

JavaScript - Wrapper  (0) 2023.04.11
JavaScript - 클래스 상속 예시  (0) 2023.04.11
JavaScript - 객체 활용법 예시  (0) 2023.04.11
JavaScript - 함수 작성법 예시  (0) 2023.04.11
JavaScript - 정규 표현식  (0) 2023.04.07
728x90
반응형
SMALL

728x90
반응형
LIST

'JavaScript' 카테고리의 다른 글

JavaScript - 클래스 상속 예시  (0) 2023.04.11
JavaScript - 클래스 활용예시  (0) 2023.04.11
JavaScript - 함수 작성법 예시  (0) 2023.04.11
JavaScript - 정규 표현식  (0) 2023.04.07
JavaScript - Node  (0) 2023.04.07
728x90
반응형
SMALL

728x90
반응형
LIST

'JavaScript' 카테고리의 다른 글

JavaScript - 클래스 활용예시  (0) 2023.04.11
JavaScript - 객체 활용법 예시  (0) 2023.04.11
JavaScript - 정규 표현식  (0) 2023.04.07
JavaScript - Node  (0) 2023.04.07
JavaScript - 문서객체모델  (0) 2023.04.07
728x90
반응형
SMALL

정규 표현식

/   ~   / 시작과 끝
    ^ : 패턴의 시작
    [ ] : 안의 문자를 찾음
    [x-z] : x~z 사이의 문자를 하나를 찾음
    x+ : x가 1번이상 반복
    x$ : 문자열이 x로 끝남
    ^x : 문자열이 x로 시작
    \d : 숫자
    x{n} : x를 n번 반복한 문자를 찾음
    x{n,m} : x를 n번 이상 m번 이하 반복한 문자를 찾음
    mdn 사이트에서 정규표현식을 검색하면 더 많은게 나온다

 

    아이디: [          ]
    * 아이디는 4자리 이상 ,16자리 이하
    * 영문 대문자 또는 소문자로 시작해야 한다

1. 아이디
    - 영문 대문자 또는 소문자로 시작하며, 길이는 4~20자까지 입력 가능
        /^[A-Za-z]{4,20}$/

    이름: [          ]
    * 한글만 사용

2. 이름
    - 한글만 사용
        /[가-힣]+$/           + 는 앞의 조건이 여러번 나와도 상관없다는 뜻
    
    비번: [          ]
    * 비밀번호는 4자리 이상, 16자리 이하
    * 대문자, 소문자, 숫자, 특수문자 1개 이상 포함

3. 비번

/^[A-Za-z0-9\-\.]{4,20}$/




4. 휴대폰 번호
    - 앞번호는 3글자, - , 중간번호는 3글자 또는 4글자, - ,마지막 번호는 4글자
    - 010-1111-1111 or 010-111-1111 꼴로
    /^\d{3}-\d{3,4}-\d{4}$/

5. 이메일
    - 영문 대문자 또는 소문자 또는 숫자로 시작
    - @포함 .포함
    /^[A-Za-z0-9\-\.]+@[A-Za-z0-9\-\.]+\.[A-Za-z0-9\-\.]+$/         \- 는 특수문자도 포함 \. 는 점도 포함


자바 스크립트 정규 표현식 적용 함수

test(): 정규 표현식에 대입한 문자열이 적합하면 true 아니면 false를 리턴

 

728x90
반응형
LIST

'JavaScript' 카테고리의 다른 글

JavaScript - 객체 활용법 예시  (0) 2023.04.11
JavaScript - 함수 작성법 예시  (0) 2023.04.11
JavaScript - Node  (0) 2023.04.07
JavaScript - 문서객체모델  (0) 2023.04.07
JavaScript - Location, History, Navigator 객체  (0) 2023.04.07
728x90
반응형
SMALL

노드(node)

- HTML DOM은 노드라고 불리는 계층적 단위에 정보를 저장


노드종류

- 문서노드: 문서 전체를 나타내는 노드
- 요소노드: HTML의 요소는 요소노드, 속성노드를 가질수 있음
- 속성노드: 속성은 모두 속성노드이며, 요소노드의 관한 정보를 가지고 있다
- 텍스트노트: 텍스트는 모두 텍스트노드
- 주석노드: 주석은 모두 주석노드


노드의 관계

parentNode: 부모 노드
children: 자식
childsNodes: 자식 노드 리스트
firstchild: 첫번째 자식 노드  // 아래의 경우에 엔터키가 찾아질수도 있다
firstElementChild: 첫번째 자식 요소 노드 // 요소만 찾아지므로 li태그가 바로 찾아진다
lastChild: 마지막 자식 노드 // 마찬가지로 엔터키, 공백, 주석이 찾아질수도 있다
lastElementChild: 마지막 자식 요소 노드 // 요소만 찾아짐
nextSibling: 다음 형제 노드
preiousSibling: 이전 형제 노드

    <ul>
        <li>김사과</li>
        <li>오렌지</li>
    </ul>


노드 추가

appendChild(): 새로운 노드를 해당 노드의 자식 노드 리스트 맨 마지막에 추가
insertBefore(): 새로운 노드를 특정 자식노드 바로 앞에 추가
insertData(): 새로운 노드를 텍스트 데이터로 추가

노드 생성

createElement(): 새로운 요소 노드를 만듬
createAttribute(): 새로운 속성 노드를 만듬
createTextNode(): 새로운 텍스트 노드를 만듬

노드 제거

removeChild(): 자식 노드 리스트에서 특정 자식 노드를 제거. 노드가 제거되면 해당노드를 반환. 노드가 제거될 때 노드이 자식들도 다같이 제거
removeAttribute(): 특정 속성 노드를 제거

노드 복제

clonenode(): 기존의 존재하는 노드와 동일한 노드를 새롭게 생성하여 반환

 

728x90
반응형
LIST

'JavaScript' 카테고리의 다른 글

JavaScript - 함수 작성법 예시  (0) 2023.04.11
JavaScript - 정규 표현식  (0) 2023.04.07
JavaScript - 문서객체모델  (0) 2023.04.07
JavaScript - Location, History, Navigator 객체  (0) 2023.04.07
JavaScript - form 객체  (0) 2023.04.06
728x90
반응형
SMALL

문서 객체 모델(document object model)

- html 문서 또는 xml문서 등을 접근하기 위한 일조으이 인터페이스 역할
- 문서내의 모든 요소를 정의하고 각각의 요소에 접근하는 방법을 제공

document 객체
- 웹 페이지 자체(body)를 의미하는 객체
- 웹 페이지에 존재한 html 요소에 접근하고자 할때 반드시 document 객체로 부터 시작

getElementById(): 해당 아이디의 요소를 선택
getElementsByTagName(): 해당 태그 이름의 요소를 모두 선택
getElementsByClassName(): 해당 클래스에 속한 요소를 모두 선택
getElementsByName(): 해당 name 속성값을 가지는 요소를 모두 선택 // name -> 서버에서 데이터베이스로 송신해주는역할

querySelectorAll(): 선택자로 선택되는 요소를 모두 선택
querySelector(): 선택자로 선택되는 요소를 선택

 

728x90
반응형
LIST

'JavaScript' 카테고리의 다른 글

JavaScript - 정규 표현식  (0) 2023.04.07
JavaScript - Node  (0) 2023.04.07
JavaScript - Location, History, Navigator 객체  (0) 2023.04.07
JavaScript - form 객체  (0) 2023.04.06
JavaScript - setInterval(), clearInterval()  (0) 2023.04.06

+ Recent posts