
오류가 발생한건 아니지만 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>
