프론트엔드✏️/코드캠프

부트캠프 - precamp 3일차

당근먹는하니 2022. 5. 5. 01:26
728x90
반응형

 발받침이 없으니까 불편해~

웹앱 서비스 기본구조에 대해 배웠다.

프론트엔드는 데이터 생성 및 사용을하고 백엔드는 데이터 검증과 보완, 데이터 저장과 관리를 한다.

프론트엔드는 DL, Data Logic/Biding   /   백엔드는 BL, Business Logic


자바스크립트 데이터 타입과 연산자

Object 배열도 객체 타입 중 하나. 객체에서 타생된 것임

문자열 + 문자열 : 문자열 합쳐짐

숫자 + 문자열 : 계산 안되고 문자열로 합쳐짐

요즘은 그래도 좀 나아져서 "96"이 된다던데

어제 피어싱 끼우면서 봤던 자바 스크립트 안 쓰는 이유가 생각났다. 너무 많은 것을 허용해주기는 한다 싶었다. (근데 내가 쓸 때는 편함ㅎㅎ) 

 

 

싸이월드 게임 부분 만들기 css를 끝내놓고 기능도 구현해보고 싶어서 js를 좀 만져봤다.

일단 로또에서 숫자 바꾸는 기능. c++ 배울 땐 난수 뽑아서 그거 나머지 연산자로 다듬어서 스왑 이용해서... 등 많은 과정을 거쳤던 것 같은데, 자바 스크립트는 그런 거 필요없었다! 일단 숫자 하나하나에 기능을 적용시킨다는 느낌이기도 하고... 

function change() {
    for(let i = 0; i < 6; ++i) {
        let number = []
        number[i] = Math.floor(Math.random()*100)
        if(number[i]>=46) {
            number[i] -= 45
        }
        else if(number[i] === 0) {
            number[i] += 1
        }
        document.getElementById(i).innerText = number[i]
    }
}

// number 배열 만듦
// random생성하고 두자리수로 만든 뒤 소수점 뒤 다 버림
// 두 자리 수가 46와 같거나 클 경우 -45를 함 이거 왜 안되지

지금 헷갈리는건 innerText랑 value ... 언제언제 써야할지 잘 감이 안온다. 

document.getElementById(이 부분에  "i"라고 썼다가 그건 문자열이니까... 안되고 i 라고 하니까 됨!)

HTML 파일에도 0~5로 지정해놓았다. 

<div class="lotto__number">
                <div id="0" class="number">2</div>
                <div id="1"class="number">17</div>
                <div id="2"class="number">22</div>
                <div id="3"class="number">27</div>
                <div id="4"class="number">33</div>
                <div id="5"class="number">37</div>
            </div>

더 좋은 방법이 있는진 모르겠지만... 아무튼 이렇게 했다. 

지금 문제는 숫자가 1-45만 나오게 하고 싶은데, 왜 46넘으면 -45를 안해주는거지? 

 

 일단 끝말잇기부터 다시 해보았다. 

// 제시어 : 와 바나나나를 분리한다.
// 바나나나의 마지막 글자를 가져오기 위해 그 문자열의 길이를 구한다.
// 길이-1 의 인덱스로 charAt() 사용한다.

function chain() {
  

    let first__word = document.getElementById("first__word").innerText
    let first__index = first__word.length - 1
    let first__end = first__word[first__index]

    let re__word = document.getElementById("re__word").innerText
    let re__first = re__word[0]

    if(first__end === re__first) {
        document.getElementById("word__result").innerText = "대단해요!😊🤗"
    }
    else {
        document.getElementById("word__result").innerText = "다시 해봐요😙"
    }
}

엄청 헤맸던 것.... length() 라고 써서 거기서 계속 막혀서 안 떴었다. 

이런 걸 안 알려주니까^^ㅠㅠ오타 하나하나에 진짜 신중하게 된다. c++ 할 때는 변수 이름을 길게 지어도 명확히 어떤 것을 하는 앤지를 알리도록 했는데, 자바스크립트에서는 변수명은 짧게...짓는 것 같다. re__word도 received__word에서 줄였다. 남들도 알아볼 수 있고 짧게 지을 수 있는 머리를 키워야할 것 같다..!!^ㅁ^

문제는 내가 나비를 넣어도 다시해봐요!가 뜬다는 것. 그니까 first__end 랑 re__first가 일치하지 않는다는 건데ㅠㅠ

뭘까, 뭘 잘못했을까. 바나나나의 길이는 4, 4-1 = 3, 바나나나의 [3]은 나. 

나비의 0번은 나. 같은 거 아닌가? 혼란이 온다... 바나나나의 나 나비의 나 왜 같다고 하지않지? 내일 vscode 켜서 변수타입도 확인해봐야겠다. 

 

 수업은 잘못따라가더라도 멘토님들이 계셔서 수시로 질문할 수 있어서 좋다! 난 자습시간에 질문을 드렸다. 오늘도 자습시간에 css 숙제는 다 끝냈다! 훠우... 아 근데 깃 안 깔았네... 내일 깔련다... 

728x90
반응형