본문 바로가기

verdantjuly/Today I Learned

TIL 20230604

728x90

오늘 목표

자바스크립트 문법 종합반 수강

TIL 리뷰

TIL 작성

오늘 한 것

TIL 리뷰

TIL 작성

1. map과 innerHTML을 이용하여 카드 붙이기

알게된 것

1. cards.innerHTML

2. map 돌리기 (return 값을 temp_html로 준다.)

3. .join("")

cards.innerHTML = movies
                .map(function append(movie) {
                    return (`<div class= "card">
                    <div class = "buttons">
                    <button class = "lovebtn" id="${movie.id}" type="button">♥︎</button>
                    <button class="deletelove" id="${movie.id} type="button">⟲</button>
                    </div>
                    <div class="cardbody" id="${movie.id}" >
                    <p class="alltime" id="${movie.id}">${((localStorage.getItem(movie.id)).length) - 1} times loved this movie</p>  
                    <img class="allimg" id="${movie.id}"  src="https://image.tmdb.org/t/p/w500${movie.poster_path}"></img>
                    <p class="allrank" id="${movie.id}" >${movies.indexOf(movie) + 1}</p>
                    <p class="allvote" id="${movie.id}"  >★ ${movie.vote_average}</p>  
                    <h4 class="alltitle" id="${movie.id}" >${movie.title}</h4>
                            
                </div>
                </div>`)
                })
                .join("")
            cards.addEventListener("click", clickAllChart)

 

2. use strict 에서의 세미콜론(;)과 콤마(,)

문제

모듈을 사용하는 상황에서 1개의 이벤트 안에 두 개의 함수를 실행시키려 한다.

 

시도

콤마를 이용한 두 개의 함수의 구분 > 성공

세미콜론을 이용한 두 개의 함수의 구분 > 성공

아무것도 없이 두 개의 함수를 줄바꿈으로 구분 > 성공

해결

use strict와 콤마, 세미콜론은 관계가 없다.

export function clickAllChart({ target }) {

    if (target === cards) return;

    if (target.matches(".lovebtn")) {
        lovefunc(target.id)
            load()
            location.reload()
    }
    else if (target.matches(".details")) {
        localStorage.setItem('sendid', target.id)
        detailpage()
    }
    else if (target.matches(".cardbody, .alltime, .allimg, .alltitle, .allvote")) {
        alert(`영화 ID : ${target.id}`);
    }

}

 

알게 된 점

세미콜론, 콤마는 use strict와 큰 관계가 없다.

콤마 연산자를 사용할 경우, 왼쪽에서 오른쪽으로 순서대로 실행되며, 가장 마지막의 표현식만이 반환된다. 

콤마 연산자는 가독성을 저하시켜서 코드 동작결과를 예측하기 어렵게 만드는 경향이 있어서 사용을 권장드리지 않는다. 

참고 자료 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Comma_operator

 

 


정리 

map과 innerHTML을 이용하여 카드 붙이기

1. cards.innerHTML

2. map 돌리기 (return 값을 temp_html로 준다.)

3. .join("")

 

세미콜론, 콤마는 use strict와 큰 관계가 없다.

콤마 연산자를 사용할 경우, 왼쪽에서 오른쪽으로 순서대로 실행되며, 가장 마지막의 표현식만이 반환된다. 

콤마 연산자는 가독성을 저하시켜서 코드 동작결과를 예측하기 어렵게 만드는 경향이 있어서 사용을 권장드리지 않는다. 

 

소감

팀원들이 더 편하게 작업할 수 있도록 배운 것들과 예제 코드를 참고하여 코드를 고쳤다. 

기존의 map을 이용하던 저장 시스템을 local storage로 바꿨다. 새로고침해도 날라가지 않는다.

필요 없는 기능은 과감하게 없앴다. 

'verdantjuly > Today I Learned' 카테고리의 다른 글

TIL 20230606  (0) 2023.06.06
TIL 20230605  (0) 2023.06.05
TIL 20230603  (0) 2023.06.03
TIL 20230602  (0) 2023.06.02
TIL 20230601  (0) 2023.06.01