커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
function에서 변수 앞에 지정하는 let은 어떤 기능을 가지고 있나요?
undefined주차
북마크
박*현
댓글
2
추천
0
조회수
11
조회수
11
답변 완료


오류가 발생한건 아니지만 2주차 따릉이데이터로 fetch를 배울 때 변수 앞에 쓰는 let의 용도가 궁금해 질문 올립니다.

질문은 총 3가지 이고 관련 화면과 전체 코드를 첨부해두었습니다.


1.

변수 선언할 때 왜 let을 써줘야 하는지 궁금합니다.

코드 A )

let station = a['stationName']

let rack = a['rackTotCnt']

let bike = a['parkingBikeTotCnt']

코드 B )

station = a['stationName']

rack = a['rackTotCnt']

bike = a['parkingBikeTotCnt']


전체 코드에서 코드 A 부분을 코드 B로 바꿔도 화면에서 나타나는 결과물은 동일한데 변수 앞에 let은 어떤 역할을 하나요?


2.

코드에서 let temp_html = `` 부분은 왜 필요한가요?

null 값을 만들어 두고 나중에 if else 조건문으로 값을 대체하기 위함인가요?

그렇다고 해도 마찬가지로 let temp_html = `` 없이 if else 조건문만 넣어도 화면상으로는 동일한 결과가 나오기 때문에 궁금합니다.


3.

if else 문 안에서 let 으로 선언하면(eg. if (조건) { let temp_html = .. ] else { let temp_html = ..} 왜 오류가 발생하나요?

if else 문 안에서 let을 쓰면 그 뒤에 오는 변수를 인식하지 못하는것 같습니다.

왜 이런 현상이 발생하는지 궁금합니다(*캡처)


if else 조건문에서 if 조건문에 let 변수 = `html문` 이용 => if 조건문 안에서 지정한 변수를 인식하지 못함(append 실패)

스파르타 즉문즉답

if else 조건문에서 if 조건문에 let 없이 변수 = `html문` 이용 => if 조건문 안에서 지정한 변수를 인식함(append 성공)

=> 그냥 if 문 안에서 let을 쓰면 안 되는건가요? 논리적인 설명이 가능하다면 듣고 싶습니다.

스파르타 즉문즉답



작성한 코드 및 에러 메세지

<!doctype html>

<html lang="ko">


<head>

    <meta charset="UTF-8">

    <title>Fetch 연습하고 가기!</title>

    <!-- JQuery를 import 합니다 -->

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>


    <style type="text/css">

        div.question-box {

            margin: 10px 0 20px 0;

        }

        table {

            border: 1px solid;

            border-collapse: collapse;

        }

        td,

        th {

            padding: 10px;

            border: 1px solid;

        }

        .red{ color: red; }

    </style>

    <script>

        function q1() {

            fetch("http://spartacodingclub.shop/sparta_api/seoulbike").then(res => res.json()).then(data => {

                $('#names-q1').empty()

                let rows = data['getStationList']['row']

                rows.forEach((a) => {

                    let station = a['stationName']

                    let rack = a['rackTotCnt']

                    let bike = a['parkingBikeTotCnt']


                    let temp_html = ``

                    if (bike < 5) { temp_html = `<tr class="red">

                                                <td>${station}</td>

                                                <td>${rack}</td>

                                                <td>${bike}</td>`

                                            }

                    else { temp_html = `<tr>

                                        <td>${station}</td>

                                        <td>${rack}</td>

                                        <td>${bike}</td>`

                                    }

                    $('#names-q1').append(temp_html)

                })

            })

        }

    </script>


</head>


<body>

    <h1>Fetch 연습하자!</h1>

    <hr />

    <div class="question-box">

        <h2>2. 서울시 OpenAPI(실시간 따릉이 현황)를 이용하기</h2>

        <p>모든 위치의 따릉이 현황을 보여주세요</p>

        <p>업데이트 버튼을 누를 때마다 지웠다 새로 씌여져야 합니다.</p>

        <button onclick="q1()">업데이트</button>

        <table>

            <thead>

                <tr>

                    <td>거치대 위치</td>

                    <td>거치대 수</td>

                    <td>현재 거치된 따릉이 수</td>

                </tr>

            </thead>

            <tbody id="names-q1">

                <tr>

                    <td>102. 망원역 1번출구 앞</td>

                    <td>22</td>

                    <td>0</td>

                </tr>

                <tr>

                    <td>103. 망원역 2번출구 앞</td>

                    <td>16</td>

                    <td>0</td>

                </tr>

            </tbody>

        </table>

    </div>

</body>

</html>

취소
 공유
취소
댓글 0
댓글 알림
나의얼굴