이번 주차는 스타벅스 사이트를 클론 코딩 전에 JavaScript에 관한 것을 간단히 배우고 바로 클론코딩으로 넘어갔다.
큰 따옴표("") or 작은 따옴표('') or 백틱(``)
안에 할당되어 있는 데이터{key:value}
형태로 저장let fruits = ['Apple', "Banana']
let
은 재사용 및 재할당 가능, const
재할당 불가능//기명(이름이 있는) 함수
//나중에 호이스팅(hoisting)에서 한 번 더 확인할 예정
//함수 선언!
function hello() {
console.log('hi');
}
//익명(이름이 없는) 함수 annonymous function
//함수 표현!
let world = function () {
console.log('world')
}
const obj = {
name: 'NAME',
age: 85,
// 메소드(method): 객체 내부 속성에 함수가 있을 경우
getName: function () {
return this.name; // 객체 안에 있는 name을 찾아서 반환하는 구조
}
}
// 아래 모두 같은 값 출력
const naming = obj.getName();
console.log(obj.getName());
const a = 'Hello~'
const b = a.split('').reverse().join(''); // 메소드 체이닝
console.log(a); //Hello~
conslog.log(b); //~olleH
let isShow = true
if (isShow) {
console.log('Show!);
} else {
console.log('false');
}
DOM: html의 들어있는 객체 모델(div, span, input) + API: 사이트가 동작하기 위해서 입력하는 프로그래밍 명형 = JS에서 HTML을 제어하는 명령들
// HTML 요소(Element) 가장 먼저 찾아지는 1개 검색/찾기
const boxEl = document.querySelector('.box');
// HTML 요소에 적용할 수 있는 메소드;
// 첫 번째는 이벤트(Event, 상황), 두 번째는 핸들러(Handler, 실행할 함수)
boxEl.addEventListner('click', function () {
console.log('Click!')
});
// HTML 요소(Element) 가장 먼저 찾아지는 1개 검색/찾기
const boxEl = document.querySelector('.box');
// 요소의 클래스 정보 객체 활용!
boxEl.classList.add('active'); //boxEl 쪽에 새로운 class를 삽입
let isContains = boxEl.classList.contains('active'); //active라는 class가 있는지 확인
console.log(isContains); // true
boxEl.classList.remove('active'); //boxEl에서 class를 제거
let isContains = boxEl.classList.contains('active'); //active라는 class가 있는지 확인
console.log(isContains); // false
// HTML 요소(Element) 모두 검색/찾기
const boxEls = document.querySelectorAll('.box');
// 찾은 요소를 반복해서 (익명)함수 실행
// 첫 번째는 반복 중인 요소(boxEl), 두 번째는 반복 중인 번호(index)
boxEls.forEach(boxEl, index {
boxEl.classList.add(`order-${index + 1}`);
console.log(index, boxEl);
});
// HTML 요소(Element) 가장 먼저 찾아지는 1개 검색/찾기
const boxEl = document.querySelector('.box');
// Getter, 값을 얻는 용도
console.log(boxEl.textContent); // <bo>태그에 있는 문자열을 콘솔창에 출력
//Setter, 값을 지정하는 용도
boxEl.textContent = 'NAME';
console.log(boxEl.textContent); //NAME
<li class="item">
<div class="item__name">MENU</div>
<div class="item__contents">
<div class="contents__menu">
<div class="inner">
<div class="title">
<img src="./images/visual_title.png" alt="STARBUCKS DELIGHTFUL START TO THE YEARS" />
<a href="javascript:void(0)" class="btn--brown">자세히 보기</a>