HTML과 JS 기본에 대해 조금더 자세하게 살펴보고
실습을 진행하도록 하겠다
HTML
태그
img 태그 :
<img src="test.jpg" style="width: 200px;", height="200px">
현재 코드 파일 위치에서 test.jpg 사진을 사용한다
style은 넓이와 높이를 설정할 수 있다.
input 태그 :
<input type="text">
input 태그는 사용자 입력을 받는 필드를 만드는 태그이다
type은 text, button, submit 등등 필요에 의해 사용된다
value로 값을 지정할 수 있다
a 태그 :
<a href="test.html">test페이지로 이동</a>
a태그는 하이퍼링크를 만드는 태그이고 href속성에 링크할 파일이나 링크를 지정한다
ul, ol 태그 :
ul, ol 태그는 목록을 만드는 태그이다 li태그와 같이 쓰이며
ul은 순서가 없는 태그 ol은 순서가 있는 태그이다.
span 태그 :
인라인 요소를 그룹화하는 태그이다
텍스트 또는 다른 인라인 요소에 스타일을 적용하기 위해 사용
table 태그 :
테이블을 생성하는 태그이다 (표) tr, td, th태그와 같이 사용한다
- <tr> : 테이블의 행을 정의
- <td> : 테이블의 데이터 셀을 정의
- <th> : 테이블의 헤더 셀을 정의
div 태그 :
구역이나 섹션을 만드는 태그이다
CSS와 함께 사용하여 스타일을 적용한다
form 태그 :
사용자 입력을 위한 양식을 만드는 태그
<input>, <textarea>, <button>과 함께 사용
HTML 실습

이 사진과 비슷한 사과와 바나나를 소개하는 페이지를 제작하겠다
필요 태그
<a>, <img>, <ul>, <li>, <input>,<hr>
바나나 소개 페이지와 사과 소개 페이지는 따로 만들어 <a> 태그로
연결되게 하겠다
바나나 소개 코드
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>바나나 소개 페이지</title>
</head>
<body>
<h1>바나나!</h1>
<hr>
<h2>바나나에 대하여</h2>
<p>바나나는 전 세계에서 가장 인기 있는 과일 중 하나입니다. 바나나는 건강에 보호적인 영향을 미칠 수 있는 필수 영양소를 함유하고 있습니다.</p>
<img src="바나나사진.webp" style="width: 200px;", height="200px">
<h2>바나나의 건강 이점</h2>
<ul>
<li>높은 섬유질 함량</li>
<li>심장 건강</li>
<li>소화 촉진</li>
</ul>
<h2>맛있는 바나나 레시피</h2>
<p>이메일:</p>
<input type="text">
<p>당신의 좋아하는 바나나 레시피를 공유해주세요:</p>
<input type="text" style="width: 300px;", height="100px"><br>
<input type="button" value="제출"><br>
<p><a href="test2.html">사과</a>에 대하여</p>
</body>
</html>
사과 소개 코드
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>사과 소개 페이지</title>
</head>
<body>
<h1>사과</h1>
<hr>
<h2>사과에 대하여</h2>
<p>사과는 전 세계에서 널리 사랑받는 과일 중 하나입니다. 사과는 다양한 영양소를 함유하고 있어 건강에 좋습니다</p>
<img src="사과 사진.avif" style="width: 200px;", height="200px">
<h2>사과의 건강 이점</h2>
<ul>
<li>높은 식이섬유 함량</li>
<li>다양한 비타민과 미네랄</li>
<li>항산화 물질 풍부</li>
</ul>
<h2>맛있는 사과 레시피</h2>
<p>이메일:</p>
<input type="text">
<p>당신의 좋아하는 사과 레시피를 공유해주세요:</p>
<input type="text" style="width: 300px;", height="100px"><br>
<input type="button" value="제출"><br>
<p><a href="test.html">바나나</a>에 대하여</p>
</body>
</html>
결과


JS
저번 블로그에서 JS의 기본문법들을 살펴봤으니
다른 내장함수들을 포함하
유용하게 사용할 수 있는 Arrow Function을 이해하고
룰렛 게임을 만들어 보겠다
setTimeout(실행할 함수, ms);
2번째 인자에 있는 밀리초가 지난 후 실행할 함수를 실행한다
setInterval, clearInterval
let test = setInterval(반복 실행할 함수, 반복 간격(ms));
반복 간격마다 1번쨰 인자를 반복실행한다
이때 ClearInterval(test);를 안에서 실행시킨다면
반복을 중지한다.
c언어에서의 break와 유사하다.
배열.forEach(함수);
배열에 각 요소에 각각 한번씩 함수를 실행한다
배열.map()
()안에 변환된 배열의 요소들로 새로운 배열을 반환한다
배열.filter()
각 요소에 대해 조건을 만족하는 요소로 배열을 반환한다
전에 했던 계산기실습에서 사용한 코드이다.
정규표현식을 활용해서 사용할 수 있다.
Arrrow function
화살표 함수는 간결한 문법으로 함수를 작성할 수 있게 해주는 기능이다
기본 함수구조
function add(a, b){
return a + b;
}
Arrow function
const add = (a, b) => {
return a + b;
}
여기서 꼭 const를 사용해야 하는것은 아니다
상수로 사용해 변하지 않음을 의미한다
매개변수가 없을때는 빈괄호를 사용해야 하고
Arrow function은 arguments 객체를 가지지 않는다
arguments 객체는 함수 내에서 자동으로 생성되는 객체로
함수 내부에서 사용할 수 있다.
실습 코드
<!DOCTYPE html>
<html>
<head>
<title>Roulette Game</title>
<script></script>
</head>
<body>
<div id="roulette">1</div>
<button id="stopButton">정지</button>
<script>
const values = [1, 2, 3, 4, 5, 6];
const rouletteDisplay = document.getElementById("roulette");
let intervalId = null;
let currentIndex = 0;
function startRoulette() {
intervalId = //interval 설정하기
}
document.getElementById("stopButton").addEventListener("click", () => {
clearInterval(intervalId);
alert("선택된 숫자: " + values[currentIndex]);
});
startRoulette();
</script>
</body>
</html>
이 코드는 룰렛 게임 코드인데
실습은 이 코드를 완성시키는 것이다
완성된 코드
<!DOCTYPE html>
<html>
<head>
<title>Roulette Game</title>
<script></script>
</head>
<body>
<div id="roulette">1</div>
<button id="stopButton">정지</button>
<script>
const values = [1, 2, 3, 4, 5, 6];
const rouletteDisplay = document.getElementById("roulette");
let intervalId = null;
let currentIndex = 0;
function startRoulette() {
intervalId = setInterval(()=>{
currentIndex = (currentIndex + 1) % 6;
rouletteDisplay.textContent = values[currentIndex];
}, 100);
}
document.getElementById("stopButton").
addEventListener("click", () => {
clearInterval(intervalId);
alert("선택된 숫자: " + values[currentIndex]);
startRoulette();
});
startRoulette();
</script>
</body>
</html>
추가 코드
intervalId = setInterval(()=>{
currentIndex = (currentIndex + 1) % 6;
rouletteDisplay.textContent = values[currentIndex];
}, 100)};
setInterval을 사용해 100밀리초 마다 반복하여 실행하도록 하고
1~6까지의 값을 반복하고 index값을 증가시키는 와중
값이 너무 커지는것을 방지하기 위해 % 6을 추가하여 실제 index에
1~6까지에 값만이 들어가도록 하였다
그리고 상수로 지정하였던 rouletteDisplay값에
지정된 인덱스값의 값을 넣어주었다
Arrow function도 사용해 보고 setInterval도 사용해 보니
익숙한 c언어와는 다르게 실제 JS 프로그램들은
편리한 함수를 사용한다라는 것을 느꼈다
'KnockOn' 카테고리의 다른 글
| [2주차 TIL] KnockOn Bootcamp Mysql (0) | 2024.08.10 |
|---|---|
| [2주차 TIL] KnockOn Bootcamp Apache (0) | 2024.08.10 |
| [1주차 TIL] KnockOn Bootcamp HTML / CSS / JS (0) | 2024.08.03 |
| [1주차 TIL] KnockOn Bootcamp 프록시 (0) | 2024.08.02 |
| [1주차 TIL] KnockOn Bootcamp 패킷 (0) | 2024.08.01 |