TIL - 21.06.22 πŸ‘¨β€πŸ’» - JS

μ„±ν›ˆΒ·2021λ…„ 6μ›” 22일
0

TIL

λͺ©λ‘ 보기
9/59
post-thumbnail

TIL - 21.06.22 πŸ‘¨β€πŸ’»

μ˜€λŠ˜μ€ 계산기 μŠ€ν”Œλ¦°νŠΈλ₯Ό νŽ˜μ–΄λ‘œ μ§„ν–‰ν•˜λ©° HTML/CSS/JavaScript 에 λŒ€ν•œ 이해λ₯Ό λ†’ν˜”λ‹€.

μžλ°”μŠ€ν¬λ¦½νŠΈλ‘œ 클래슀 μΆ”κ°€ν•˜κΈ°

클래슀λ₯Ό μΆ”κ°€ν•˜κ³  싢은 μ—˜λ¦¬λ¨ΌνŠΈμ˜ #ID κ°’ ν˜Ήμ€ .class 값을 querySelector()둜 κ°€μ Έμ™€μ„œ classList.add()λ₯Ό μ‚¬μš©ν•œλ‹€.

<div id='idName'>Content</div>
.className {
  background-color: red;
}
let elem = document.querySelector('#idName');
// μ„ μ–Έ μ•ˆν•˜κ³  μ•„λž˜ μ½”λ“œ elem μžλ¦¬μ— λ°”λ‘œ 쿼리 μ…€λ ‰ν„°λ₯Ό 넣어도 λœλ‹€. 
// 근데 읽기 μ–΄λ €μš°λ‹ˆκΉŒ μ›¬λ§Œν•˜λ©΄ 읽기 μ‰¬μš΄ λ³€μˆ˜λ‘œ μ„ μ–Έν•˜κ³  μ‚¬μš©ν•˜μž.
elem.classList.add('className');

idNameμ΄λΌλŠ” idλ₯Ό 가진 htmlμ—˜λ¦¬λ¨ΌνŠΈμ— classNameμ΄λΌλŠ” 클래슀λ₯Ό λΆ€μ—¬ν•˜λŠ” μ½”λ“œμ΄λ‹€.

element.querySelector();

쿼리 μ…€λ ‰ν„°λŠ” CSS μ„ νƒμžλ‘œ htmlμ—μ„œ 값을 νŠΉμ •ν•  수 있게 ν•΄μ£ΌλŠ” λ©”μ†Œλ“œμ΄λ‹€.
querySelector()의 κ΄„ν™” μ•ˆμ—λŠ” tag, idκ°’, class 값이 올 수 μžˆλ‹€.

νƒœκ·Έλ₯Ό 선택할땐 querySelector('tagName') 의 ν˜•νƒœλ‘œ νƒœκ·Έλ₯Ό νŠΉμ •ν•˜κ³ ,
μ•„μ΄λ””λ‘œ 선택할땐 querySelector('#idName') 의 ν˜•νƒœλ‘œ νŠΉμ •ν•˜κ³ ,
클래슀둜 선택할땐 querySelector('.className') 의 ν˜•νƒœλ‘œ νŠΉμ •ν•œλ‹€.

λ”°λ‘œ 적지 μ•Šλ”λΌλ„ λ”°μ˜΄ν‘œκ°€ μ ν˜€μžˆμœΌλ©΄ ν•„μˆ˜μ΄λ‹€.

λ§Œμ•½ νƒœκ·Έλ‚˜ 클래슀둜 μ„ νƒν• λ•Œ, νƒœκ·Έλ‚˜ ν΄λž˜μŠ€κ°€ λ‹€μˆ˜μΌ 경우 졜초둜 μ°Ύμ•„μ§€λŠ”, 보톡은 같은 νƒœκ·Έ ν˜Ήμ€ 클래슀 쀑 κ°€μž₯ μœ„μ— μžˆλŠ” κ°’ ν•˜λ‚˜λ₯Ό μ„ νƒν•œλ‹€.
그리고 값을 μ°ΎλŠ” μˆœκ°„ κ·Έ 졜초 값을 λ°˜ν™˜ν•˜λ©΄μ„œ 탐색도 λ©ˆμΆ˜λ‹€.

고둜 id둜 μ„ νƒν•˜λŠ”κ²Œ 맘 νŽΈν•˜κ³ , λ§Œμ•½ νƒœκ·Έ 전체 ν˜Ήμ€ 클래슀 전체λ₯Ό 선택할땐 차후에 ν¬μŠ€νŒ…ν•  element.querySelectorAll() λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•΄μ•Όν•œλ‹€.

  • 두 λ©”μ†Œλ“œμ˜ 차이와 getElementBy~ μΉœκ΅¬λ“€μ€ μ°¨ν›„ OiMW둜 ν¬μŠ€νŒ… μ˜ˆμ •.

.checkList

μ§μ ‘μ μœΌλ‘œ 클래슀 속성을 λ‹€λ£¨λŠ” λ©”μ†Œλ“œμ΄λ‹€.
주둜 μ‚¬μš©ν•˜λŠ” 것은


elem.checkList // elem의 클래슀λ₯Ό λ¬Έμžμ—΄λ‘œ λ‚˜μ—΄
elem.checkList.length // elem의 클래슀 갯수λ₯Ό 숫자둜 λ°˜ν™˜
elem.checkList.add('className', 'className1') // 클래슀λ₯Ό elem 에 μΆ”κ°€ν•  λ•Œ μ‚¬μš©, ν•œλ²ˆμ— 볡수 μΆ”κ°€ κ°€λŠ₯
elem.checkList.replace('classNameBefore', 'classNameAfter') // 클래슀λ₯Ό λ°”κΏ€λ•Œ μ‚¬μš©
elem.checkList.remove('className', 'className1') // 클래슀λ₯Ό elem μ—μ„œ μ œκ±°ν•  λ•Œ μ‚¬μš©, ν•œλ²ˆμ— 볡수 제거 κ°€λŠ₯
elem.checkList.toggle('className', 'Condition') 
// elem에 classNameμ΄λΌλŠ” ν΄λž˜μŠ€κ°€ μ—†μ„λ•ŒλŠ” className을 μΆ”κ°€ν•˜κ³ , className이 μžˆμ„λ•ŒλŠ” className을 μ œκ±°ν•œλ‹€. 

elem.checkList.contains('className') // elem에 classNameμ΄λΌλŠ” ν΄λž˜μŠ€κ°€ μžˆλŠ”μ§€ 확인. λΆˆλ¦¬μ–Έ νƒ€μž…μœΌλ‘œ λ°˜ν™˜ν•œλ‹€.

.matches

이 λ©”μ†Œλ“œλŠ” μ—˜λ¦¬λ¨ΌνŠΈκ°€ κ΄„ν˜Έ μ•ˆμ˜ CSS μš”μ†Œκ°€ μΌμΉ˜ν•˜λ©΄ λΆˆλ¦¬μ–Έ νƒ€μž…μœΌλ‘œ true, λΆˆμΌμΉ˜ν•œλ‹€λ©΄ falseλ₯Ό λ°˜ν™˜ν•˜λŠ” λ©”μ†Œλ“œμ΄λ‹€.

GOOD πŸ˜‰

였늘 계산기 μŠ€ν”Œλ¦°νŠΈλ₯Ό κ°€μž₯ 높은 λ‹¨κ³„κΉŒμ§€ ν•΄κ²°ν•΄μ„œ μ œμΆœν–ˆλ‹€.
μŠ€ν”Œλ¦°νŠΈλ₯Ό μ§„ν–‰ν•˜λ©° λ§‰μ—°ν•˜κ²Œ μ•Œκ³ μžˆλ˜ λ©”μ†Œλ“œλ“€μ„ λ°°μ› λ‹€.더 λ°°μ›Œμ•Όν•¨

BAD πŸ˜₯

μŠ€ν”Œλ¦°νŠΈμ— μ •μ‹ νŒ”λ €μ„œ λ‚˜λ¨Έμ§€ 곡뢀λ₯Ό μ•ˆν–ˆλ‹€. 게으λ₯Έλ†ˆ
νŽ˜μ–΄λ‹˜ν•œν…Œ 신경을 λ„ˆλ¬΄ λͺ» 써쀀 것 κ°™μ•„ μ£„μ†‘ν•˜λ‹€. 신경써쀄 μˆ˜μ€€μ΄ μ•„λ‹ˆκΈ°λ„ 함

TO DO πŸ”₯

  • λ°°μ—΄ 곡뢀
  • 객체 곡뢀
  • node.js 곡뢀

Retrospect 🧐

μ˜€λŠ˜μ€ κ·Έλž˜λ„ μ–΄μ œλ³΄λ‹¨ 더 κ³΅λΆ€ν•œ 것 κ°™λ‹€.
사싀 이정도 κ³΅λΆ€λŸ‰μ— λ§Œμ‘±ν•˜λ©΄ μ•ˆλ˜λŠ”κ²Œ μ‚¬μ‹€μ΄μ§€λ§Œ λ‚˜λŠ” κ°„μ‚¬ν•œ 인간이라 μž‘μ€ 배움에도 크게 λ§Œμ‘±ν•΄λ²„λ¦¬λŠ” νƒ€μž…μ˜ 인간이닀.
배움에 크고 μž‘μŒμ΄ μ–΄λ”” μžˆκ² λŠλƒλ§Œμ€ λ‚œ 더 곡뢀할 수 μžˆμŒμ—λ„ κ±°κΈ°μ„œ λ§Œμ‘±ν•˜κ³  μ•ˆμ£Ό ν•΄λ²„λ Έλ‹€λŠ”κ±Έ μΈμ§€ν•˜κ³  μžˆλŠ” μ΅œμ†Œν•œμ˜ 양심이 μžˆλŠ” μ‚¬λžŒμ΄λΌ μ—­μ‹œ λΆ€λ„λŸ¬μ›Œ 지고 λ§Œλ‹€. 항상 λΆ€λ„λŸ¬μš΄ μ‚¬λžŒ

정진해라 μ‹ μ„±ν›ˆ

μΆ”κ°€λ‘œ λΈ”λ‘œκ·Έ ν¬μŠ€νŒ…μ— λŒ€ν•œ κ°ˆν”ΌλŠ” μ—¬μ „νžˆ λͺ» μž‘κ³ μžˆλ‹€.
TIL에 κ³΅λΆ€ν•œ 것 보닀 일기 λŠλ‚Œμ˜ νšŒκ³ κ°€ 더 λΆ„λŸ‰μ΄ 많으면 μ–΄μ°Œν•˜λ‚˜.
μ•„λ¬΄λž˜λ„ μš΄λ™μ΄λ‹ˆ λ­λ‹ˆ μΌμƒμ˜ 쒋은 점 λ‚˜μœ 점 κΉŒμ§€ μ€‘κ΅¬λ‚œλ°©μœΌλ‘œ 적지말고 μ§„μ§œ 코딩곡뢀에 κ΄€ν•œ 거기에 이제 푸념이 쑰금 더해진 κ²ƒλ§Œ ν¬μŠ€νŒ…ν•΄μ•Όκ² λ‹€.

Reference πŸ™‡

λͺ¨λ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ - https://ko.javascript.info/
πŸ™‡πŸ™‡πŸ™‡

profile
μ–΄λ–»κ²Œ 이걸 ν’€μ–΄λ‚Ό 수 μžˆμ„κΉŒ

0개의 λŒ“κΈ€