짧고도 긴 3주의 시간이 지났다.
코딩에 'ㅋ' 자도 모르는 예체능 전공인 내가.... 3주동안 생소한 단어들로 아직 머리가 빙글빙글 하지만
그동안 배운것들을 돌아보는 시간을 갖으려 한다.
그 중, 첫주에 프리캠프로 배운 html, css, javascrip를 정리해 보겠다.
- HTML
- CSS
- JAVASCRIPT
block
(페이지의 가로 넓이 전체를 차지하는 요소) ,inline
(자신의 크기만큼만 차지하는 요소) 이 있다.
block
-> h1, div, p ....
inline
-> span, input, a, button, label ......
flex
: 여러 태그를 하나로 묶어 정렬position
: flex에 종속되지 않고, 박스를 개별적으로 위치시킴
justify-content
는 다음의 것들을 인자로 받아 요소들을 가로선 상에서 정렬한다.
➡️ flex-start: 요소들을 컨테이너의 왼쪽으로 정렬
➡️ flex-end: 요소들을 컨테이너의 오른쪽으로 정렬
➡️ center: 요소들을 컨테이너의 가로선상의 가운데로 정렬
➡️ space-between: 요소들 사이에 동일한 간격을 준다.
➡️ space-around: 요소들 주위에 동일한 간격을 준다.
align-items
는 다음의 것들을 인자로 받아 요소들을 가로선 상에서 정렬한다.
➡️ flex-start: 요소들을 컨테이너의 꼭대기로 정렬
➡️ flex-end: 요소들을 컨테이너의 바닥으로 정렬
➡️ center: 요소들을 컨테이너의 세로선 상의 가운데로 정렬
➡️ baseline: 요소들을 컨테이너의 시작 위치에 정렬
➡️ stretch: 요소들을 컨테이너에 맞도록 늘림
flex-direction
은 다음의 값들을 인자로 받아 컨테이너 안에서 요소들이 정렬해야 할 방향을 지정한다.
➡️ row: 요소들을 텍스트의 방향과 동일하게 정렬
➡️ row-reverse: 요소들을 텍스트의 반대 방향으로 정렬
➡️ column: 요소들을 위에서 아래로 정렬
➡️ column-reverse: 요소들을 아래에서 위로 정렬
=
는 같다의 의미가 아닌 할당의 의미이다.배열
의 생김새는 ["고구마", "연어", "초밥"]length, push(), pop(), sort(), includes(), concat(), join(), splice(), filter(), mmap()
// 문자열(배열)
const classmates1 = "철수"
classmates1[0] // "철"
classmates1[1] // "수"// 문자열 쪼개기
const classmates2 = "철수&영희"
classmates2.split("&") // ["철수", "영희"]// 문자열 양쪽 공백 제거하기
const classmates3 = " 철수 & Milk "
classmates3.trim() // "철수 & Milk"// 문자열 대소문자 변환하기
classmates3.toUpperCase() // "철수 & MILK"
classmates3.toLowerCase() // "철수 & milk"// 문자열에 빈칸 채우기
const chulsooNumber = "1234"
chulsooNumber.padStart(10, "0") // "0000001234"
chulsooNumber.padEnd(10, "0") // "1234000000"
객체
란? 성격이 다른 데이터의 모음을 저장. 키와 값으로 구성된 데이터를 묶을 때는 중괄호 { } 를 사용하여 콤마로 묶는다.
//** 객체 선언하기**
const classmate = {
name: "철수",
age: 8,
school: "꽃샘초등학교"
}// 객체의 값 꺼내기
classmate.name // 철수
classmate['name'] // 철수// 객체의 키&값 삭제하기
delete classmate.name
classmate = {
age:8,
school: "꽃샘초등학교"
}
데이터 타입의 종류
➡️ 문자열(string)은, "" 안에 적는다. 따엄표 안에 적힌 값들은 숫자여도 문자열로 취급된다.
➡️ 숫자(number)는 숫자를 나타내는 자료향이며 모든 숫자를 실수로 처리한다. ❗️(따옴표 없이 적어야 함)
➡️ 불린(boolean)은, 참/거짓으로 나타내는 자료형이다.
➡️ undefined 은, 변수를 선언했지만 값이 할당되지 않았을 때 자바스크립트 엔진이 암묵적으로 초기화 하는 값이다.
➡️ null은, 의도적으로 값이 없음을 명시하기 위해 할당하는 값이다.
연산자
산술연산자
: 더하기(+) , 빼기(-), 곱하기(*), 나누기(/), 나머지(%)
비교연산자
: 좌우의 두 값을 비교해야 할 때 사용하는 연산자
논리연산자
: 그리고( && ), 또는( || ), 부정( ! ) 을 나타내는 기호
조건문
if
: 특정 조건을 만족하면 명령문을 실행한다.
else
: 특정 조건이 거짓일 경우.
else if
: 조건이 거짓일 경우 다른거 실행.(중첩될 수 있다. 여러개가 있어도 무방!)
반복문(for)
for( 초기식; 조건식; 증감식 ){ // 반복해서 실행할 코드 } for(let I= 0; I < 5; I = I+1) { console.log(“hello”) }
➡️ 초기식: 반복문의 시작점을 만든다. 어디부터 카운트 할지 정하는것.
➡️ 조건식: 반복문의 끝점을 만든다.
➡️ 증감문: 카운트를 어떻게 할 것인가를 정한다.
➡️ const는 반복이 안되므로 사용이 불가함.
수학 객체의 종류
// 최대값
Math.max(4, 29, 1, 12) // 29// 최소값
Math.min(4, 29, 1, 12) // 1// 반올림
Math.round(2.712) // 3// 올림
Math.ceil(4.1) // 5// 버림
Math.floor(12.8) // 12
DOM 이란?
웹브라우저가 정적인 웹페이지를 변경하거나 조작하기 위해 HTML 파일을 자바스크립트 객체로 만들어 준다. dom을 통해 html과 자바스크립트가 상호작용 가능해짐.
: document.getElementByld(“tagID”). InnerText, value, style, TextContent
: html 파일에서.”tagID”라는 id를 가진 태그를 선택하여 제어한다.
:html 에서 div id=“hi” 하면 hi 라는 아이디를 가져올 수 있음.
내장함수
➡️ alret - 메세지를 지정할 수 있는 경고 대화 상자를 띄운다.
➡️ setTimeout(func,time) - 시간 지연 함수. 일정한 시간 기다렸다가 실행
➡️ setInterval(func, time) - 시간 반복 함수. 일정 시간 마다 반복하는 함수
이벤트 핸들러
버튼을 눌렀을 때 함수를 실행해야 한다거나 인풋창이 변할 때 함수를 실행해야 하는 등 적절한 시기에 함수를 실행해야 할 때 사용한다.
// 버튼 클릭시, 자바스크립트함수 실행 <button onclick="자바스크립트함수();"> 버튼 </button> // 텍스트 변경시, 자바스크립트함수 실행 <input type="text" onchange="자바스크립트함수();" /> // 포커스 아웃시, 자바스크립트함수 실행 <input type="text" onblur="자바스크립트함수();" />
테이블의 구성 요소
table
: 테이블을 만드는 태그
th
: 테이블의 헤더부분을 만드는 태그(굵은 글씨, 가운데 정렬이 기본값)
tr
: 테이블의 행을 만드는 태그
td
: 테이블의 열을 만드는 태그
<table></table>
태그가 들어간다.<th>
라는 테이블 헤더 태그를 사용한다. <tr>
태그가 들어간다.<tr>
태그 안에는 열을 만드는 속성<td>
가 들어간다.만들었던 코드는 아래와 같다.
<table class="albumTable"> <tr> <th class="albumTable__checkbox"><input type="checkbox"></th> <th class="albumTable__number">번호</th> <th class="albumTable__song">곡명</th> <th class="albumTable__artist">아티스트</th> </tr> <tr> <td class="albumTable_checkbox"><input type="checkbox"></td> <td class="albumTable_number">1</td> <td class="albumTable_song">눈의 꽃</td> <td class="albumTable_artist">박효신</td> </tr> <tr> <td class="albumTable_checkbox"><input type="checkbox"></td> <td class="albumTable_number">2</td> <td class="albumTable_song">사랑스러워</td> <td class="albumTable_artist">김종국</td> </tr> <tr> <td class="albumTable_checkbox"><input type="checkbox"></td> <td class="albumTable_number">3</td> <td class="albumTable_song">내사람 : Partner For Life</td> <td class="albumTable_artist">SG워너비</td> </tr> <tr> <td class="albumTable_checkbox"><input class="box" type="checkbox" ></td> <td class="albumTable_number">4</td> <td class="albumTable_song">Love Love Love</td> <td class="albumTable_artist">에픽하이</td> </tr> <tr> <td class="albumTable_checkbox"><input type="checkbox"></td> <td class="albumTable_number">5</td> <td class="albumTable_song">애인...있어요</td> <td class="albumTable_artist">이은미</td> </tr> </table>
요렇게 나오게 된다.
랜덤번호 생성하기!!!!!!
Math.floor
, Math.random
을 사용해서 만드는 것이었다.
(1) 0 <= random < 1
Math.random();
Math.random() 함수는 0~1 사이의 실수를 리턴합니다.(1 미포함)
(2) 0
Math.floor(Math.random());
Math.floor() 함수는 소수점 1째자리 이후의 숫자를 버림하고, 정수를 리턴합니다.
Math.random() 함수는 0~0.99999...인 숫자를 리턴하기 때문에,
Math.floor(Math.random()) 의 결과는 항상 0입니다.
(3) 0 <= random <= 9
Math.floor(Math.random() 10);
Math.random() 함수의 결과는 0~0.99999...이고,
Math.random() 10 의 결과는 0~9.99999...입니다.
따라서, Math.floor(Math.random() * 10)의 결과는 0~9 범위의 정수입니다.
Math.random() 함수를 이용하여 정수 범위의 난수를 생성할 때는
이렇게 Math.random() 함수를 호출한 결과를 조작하고, Math.floor()를 사용합니다.
(4) 0 <= random <= 10
Math.floor(Math.random() * 11);
10을 포함하는 정수 난수를 얻고 싶다면
Math.random() 함수의 결과에 11을 곱하고, 소수점 이하를 버림합니다.
(5) 0 <= random <= 99
Math.floor(Math.random() * 100);
0~99 범위의 정수 난수를 생성하려면
Math.random() 함수의 결과에 100을 곱해주고, 소수점 이하를 버림합니다.
(6) 0 <= random <= 100
Math.floor(Math.random() * 101);
0~100 범위의 정수 난수를 생성하려면
Math.random() 함수의 결과에 101을 곱하고, 소수점 이하를 버림합니다.
(7) 1 <= random <= 10
Math.random() 10) + 1;
최소값을 지정하고 싶을 때는
Math.random() (max - min + 1) 값을 계산하고, 소수점 이하를 버림합니다.
그리고, min 값을 더해줍니다.
1~10 범위의 정수 난수를 계산하기 위해서 아래와 같이 계산하였습니다.
Math.floor(Math.random() (10 -1 + 1)) + 1
= Math.floor(Math.random() 10) + 1
(8) 2 <= random <= 5
Math.floor(Math.random() 4) + 2;
(7)번 예제와 같이 범위를 지정하는 예제입니다.
Math.floor(Math.random() (5 - 2 + 1)) + 205
= Math.floor(Math.random() * 4) + 2
실습
Math.floor( Math.random() * 1000000 ) // 숫자가 출력됨 String(Math.floor( Math.random() * 1000000 )) // string 넣어서 문자로 바꿔주기! // 출력되는 숫자가 6자리인데, 앞에 0 이 붙으면 '098765'로 나와야 하는 값이 '98765'로 나오는 것을 볼 수 있음. String(Math.floor( Math.random() * 1000000 )).padStart(6,"0") // 해결을 위해 padstart를 이용해줌
아래 처럼 '099557' 로 잘 출력이 됨!
일주일 이라는 짧은시간 이었지만 오히려 자바스크립트 배우면서 css, html을 이해했다.
읭? ㅎㅎㅎ 신기한것은 배울 당시에는 이해를 못해도 한단계 앞서면 그 전것들이 갑자기 이해된다거나
조금 더 발전하는 느낌을 받는다. 수영배울때도 피아노배울때도 영어배울때도 그랬었다.
그래도 모르는 것을 끈질기게 찾아보고 해결하려고 노력했었던 한 주였다. 사실 마지막 자바스크립트 가서는 도저히 모르겠어서 final과제때 완성은 못했지만 할만큼 했다고 생각해..🫠