λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Study/HTML CSS JS

[JS] μžλ°”μŠ€ν¬λ¦½νŠΈ

by hong- 2022. 11. 22.

πŸ™πŸ»  μžλ°”μŠ€ν¬λ¦½νŠΈ JavaScript

πŸ“  ν™”μ‚΄ν‘œ ν•¨μˆ˜

1) λ§€κ°œλ³€μˆ˜κ°€ 없을 경우

( ) => { ... }

2) λ§€κ°œλ³€μˆ˜κ°€ ν•œ 개인 경우

x => { ... }

3) λ§€κ°œλ³€μˆ˜κ°€ μ—¬λŸ¬ 개인 경우

(x, y) => { ... }

πŸ“  Javascript μ—°μ‚°μž / μž…μΆœλ ₯ / λ³€μˆ˜

1) μ—°μ‚°μž

 β–ͺ️ == : μžλ£Œν˜•μ„ μžλ™μœΌλ‘œ ν˜•λ³€ν™˜

 β–ͺ️ != : μžλ£Œν˜•μ„ μžλ™μœΌλ‘œ ν˜•λ³€ν™˜

 β–ͺ️ === : κ°’μ΄λ‚˜ μžλ£Œν˜•μ΄ κ°™μŒ

 β–ͺ️ !== : κ°’μ΄λ‚˜ μžλ£Œν˜•μ΄ 닀름

 β–ͺ️ ? : μ‚Όν•­ μ—°μ‚°μž

 

2) μž…μΆœλ ₯

 β–ͺ️ μ•Œλ¦Όμ°½ 좜λ ₯

alert("μ•ˆλ…•");

 β–ͺ️ 확인창 좜λ ₯

var replay = confirm("ν™•μΈν•˜μ‹œκ² μ–΄μš”?");

 β–ͺ️ ν”„λ‘¬ν”„νŠΈμ°½ μž…λ ₯ λ°›κΈ°

var name = prompt("이름을 μž…λ ₯ν•˜μ„Έμš”.", "default");

 β–ͺ️ μ›Ή λ¬Έμ„œμ— λ‚΄μš© 좜λ ₯ν•˜κΈ°

document.write("ν™˜μ˜ν•©λ‹ˆλ‹€");

 β–ͺ️ μ½˜μ†”μ°½μ— λ‚΄μš© 좜λ ₯ν•˜κΈ° 

console.log("ν™˜μ˜ν•΄!");

→ ν¬λ‘¬μ—μ„œ μ½˜μ†” μ°½ λ„μš°κΈ° 단좕킀 : shift + ctrl + j

 

3) λ³€μˆ˜

* λ³€μˆ˜ μ„ μ–Έ : var λ³€μˆ˜λͺ…;
 - undefinded μœ ν˜• : μžλ£Œν˜•μ΄ μ •μ˜λ˜μ§€ μ•Šμ€ 데이터
 - null μœ ν˜• : 데이터가 μœ νš¨ν•˜μ§€ μ•ŠμŒ

 β–ͺ️ μ „μ—­λ³€μˆ˜ : ν•¨μˆ˜ λ°–μ—μ„œ μ„ μ–Έν•˜κ±°λ‚˜ ν•¨μˆ˜ μ•ˆμ—μ„œ var λΉΌκ³  μ„ μ–Έ

 β–ͺ️ μ§€μ—­λ³€μˆ˜ : ν•¨μˆ˜ μ•ˆμ—μ„œ varλ₯Ό μ„ μ–Έ, ν•¨μˆ˜ μ˜μ—­ μŠ€μ½”ν”„λ₯Ό 가짐


πŸ“  λ³€μˆ˜ μ„ μ–Έ 방식

1) var

- 쀑볡 μ„ μ–Έ κ°€λŠ₯

2) let

 - 쀑볡 μ„ μ–Έ λΆˆκ°€λŠ₯, μž¬ν• λ‹Ή κ°€λŠ₯

3) const

 - 쀑볡 μ„ μ–Έ λΆˆκ°€λŠ₯, μž¬ν• λ‹Ή λΆˆκ°€λŠ₯


πŸ“  λ³€μˆ˜ a와 $a의 차이

1) var a

 - μžλ°”μŠ€ν¬λ¦½νŠΈ λ³€μˆ˜

 - ν”νžˆ μ•„λŠ” λ°©μ‹μœΌλ‘œ μŠ€ν¬λ¦½νŠΈμ—μ„œλ§Œ μ‚¬μš© κ°€λŠ₯

2) var $a

 - jQuery λ³€μˆ˜

 - jQueryμ—μ„œ μ‚¬μš©ν•˜λŠ” λ‚΄μž₯ν•¨μˆ˜λ“€μ€ λͺ¨λ‘ μ‚¬μš©κ°€λŠ₯ -> css에도 적용 κ°€λŠ₯ 


πŸ“  id와 class 차이

1) id : #을 μ‚¬μš©

2) class : .을 μ‚¬μš©


πŸ“ JSON  : Javascript Object Notation

- 데이터λ₯Ό λ¬Έμžμ—΄μ˜ ν˜•νƒœλ‘œ λ‚˜νƒ€λ‚΄κΈ° μœ„ν•΄ μ‚¬μš©

- λ„€νŠΈμ›Œν¬λ₯Ό 톡해 μ„œλ‘œ λ‹€λ₯Έ μ‹œμŠ€ν…œλ“€μ΄ 데이터λ₯Ό μ£Όκ³  받을 λ•Œ 많이 μ‚¬μš©

- xss λ°©μ§€λ₯Ό μœ„ν•΄ 특수문자 λ³€ν™˜μ΄ 이루어짐 ex) λ”°μ˜΄ν‘œλŠ” &quot (HTML Numberλ‘œλŠ” &#34둜 ν‘œν˜„)

β‘  JSON.parse( )

 : JSON λ¬Έμžμ—΄ → Javascript 객체

β‘‘ JSON.stringify( )

 : Javascript 객체 → JSON λ¬Έμžμ—΄


πŸ“ Javascriptμ—μ„œμ˜ Date( )

 - Month()만 +1을 ν•΄μ£Όμ–΄μ•Ό 함

    πŸ‘‰πŸ» Why? getMonth()의 λ°˜ν™˜ 값이 1-12κ°€ μ•„λ‹Œ 0-11이기 λ•Œλ¬Έμ—


πŸ“ Javascript λ°°μ—΄μ—μ„œ μ›ν•˜λŠ” 값을 μ°Ύμ•„λ‚΄λŠ” λ©”μ„œλ“œ

β‘  find

 - νŒλ³„ ν•¨μˆ˜λ₯Ό λ§Œμ‘±ν•˜λŠ” 첫 번째 μš”μ†Œλ₯Ό λ°˜ν™˜

 - arr.find(callback)  → λ°˜ν™˜ νƒ€μž…μ€ 찾은 μš”μ†Œμ˜ νƒ€μž… (μ—†μœΌλ©΄ undefinded)

β‘‘ findIndex

 - νŒλ³„ ν•¨μˆ˜λ₯Ό λ§Œμ‘±ν•˜λŠ” 첫 번째 μ‹λ³„μž λ°˜ν™˜

 - arr.findIndex(callback)  →  λ°˜ν™˜ νƒ€μž…μ€ number (μ—†μœΌλ©΄ -1)

β‘’ IndexOf

 - 인자둜 받은 값을 μ°Ύμ•„ λ§žλŠ” μ‹λ³„μž λ°˜ν™˜  →  λ°˜ν™˜ νƒ€μž…μ€ number (μ—†μœΌλ©΄ -1)


πŸ“ Javascript λ°°μ—΄μ—μ„œ μš”μ†Œλ₯Ό μ‚­μ œν•˜λŠ” λ©”μ„œλ“œ

β‘  delete

 - 기쑴의 key(=index)κ°€ λ‚¨μ•„μžˆλŠ” μ±„λ‘œ μ‚­μ œλ¨

 - ν•΄λ‹Ή μš”μ†Œλ₯Ό μ‚­μ œν•˜λ”λΌλ„ λ‹€λ₯Έ μš”μ†Œμ˜ ν‚€ 값은 λ°”λ€Œμ§€ μ•ŠμŒ

β‘‘ splice

 - 기쑴의 key(=index)κ°€ μ•Œμ•„μ„œ 쀄어듦

 - ν•΄λ‹Ή μš”μ†Œλ₯Ό μ‚­μ œν•˜λ©΄ λ‹€λ₯Έ μš”μ†Œμ˜ ν‚€ 값도 λ°”λ€œ

 - μ‚¬μš©λ²• : splice(index, μ‚­μ œκ°œμˆ˜)


πŸ“ DOM μ ‘κ·Όν•˜κΈ°

1) λ°˜ν™˜ ν˜•νƒœκ°€ HTML Collection인 경우

β‘  id μ„ νƒμžλ‘œ μ ‘κ·Ό

document.getElementById("...")

 

β‘‘ class μ„ νƒμžλ‘œ μ ‘κ·Ό

document.getElementByClassName("...")

 

β‘’ νƒœκ·Έ μ΄λ¦„μœΌλ‘œ μ ‘κ·Ό

document.getElementByTagName("...")

 

2) 속성, ν…μŠ€νŠΈ, λ…Έλ“œκΉŒμ§€ μ œμ–΄ν•˜λ €λŠ” 경우

βœ”οΈ Document.querySelector( )

 - μ„ νƒμž λ˜λŠ” μ„ νƒμž λ­‰μΉ˜μ™€ μΌμΉ˜ν•˜λŠ” λ¬Έμ„œ λ‚΄ 첫번째 element λ°˜ν™˜

 - μΌμΉ˜ν•˜λŠ” μš”μ†Œκ°€ 없을 경우 null λ°˜ν™˜

 

β‘  id="hello"라면

document.querySelector("#hello")

 

β‘‘ class="bye"라면

document.querySelector(".bye")

πŸ“ FormData 객체

 - 폼을 μ‰½κ²Œ 보내도둝 λ„μ™€μ£ΌλŠ” 객체

var formData = new FormData([form]);

  → HTML에 form μš”μ†Œκ°€ μžˆλŠ” 경우 ν•΄λ‹Ή 폼 μš”μ†Œ ν•„λ“œ 전체가 μžλ™ 반영됨

 

FormData.append(name, value)

  → nameκ³Ό valueλ₯Ό κ°€μ§„ 폼 ν•„λ“œ μΆ”κ°€


πŸ“ 이벀트 처리

< νƒœκ·Έ on 이벀트λͺ… = "ν•¨μˆ˜λͺ…">

  →  <a href = "#" onClick = "alert("클릭")"> </a>

 

μ›Ή μš”μ†Œ.onClick = "ν•¨μˆ˜λͺ…"

  →  document.querySelector("p").onClick = changeColor;


πŸ“ Javascript 객체

β‘  λ‚΄μž₯ 객체 : Array, Date λ“±

1) μ΄ˆκΉƒκ°’μ΄ μ—†λŠ” 경우

var num = new Array();         →  λ°°μ—΄ 크기 μ§€μ • x          
var num = new Array(5);       →  λ°°μ—΄ 크기 μ§€μ • o

 

2) μ΄ˆκΉƒκ°’μ΄ μžˆλŠ” 경우

var num = ["one", "two", "three"];               →  λ°°μ—΄ μ„ μ–Έ    
var num = Array("one", "two", "three");      →  Array 객체 μ‚¬μš©          

 

 βœ… array의 λ©”μ„œλ“œ

 - concat() : 두 개의 배열을 합쳐 μƒˆλ‘œμš΄ λ°°μ—΄ 생성

 - join() : μš”μ†Œλ₯Ό 합쳐 λ¬Έμžμ—΄ 생성, κ΅¬λΆ„μž μ§€μ • κ°€λŠ₯

 - push() : 맨 뒀에 μš”μ†Œ μΆ”κ°€

 - pop() : 맨 뒀에 μš”μ†Œ κΊΌλ‚΄κΈ°

 - unshift() : 맨 μ•ž μš”μ†Œ μΆ”κ°€

 - shift() : 맨 μ•ž μš”μ†Œ κΊΌλ‚΄κΈ°

 - splice() : μ›ν•˜λŠ” μœ„μΉ˜ μš”μ†Œ μΆ”κ°€/μ‚­μ œ

 - slice() : λ°°μ—΄ μŠ¬λΌμ΄μ‹±

 - filter() : μ£Όμ–΄μ§„ ν•¨μˆ˜λ‘œ 참인 μš”μ†Œ κ³ λ₯΄κΈ°

 - every() : μ£Όμ–΄μ§„ ν•¨μˆ˜μ— λŒ€ν•˜μ—¬ 참이면 true, 거짓이면 false λ°˜ν™˜

 - forEach() : λ°°μ—΄ μš”μ†Œλ“€μ— ν•¨μˆ˜ 적용

 - indexOf() : μ£Όμ–΄μ§„ 값에 λ°°μ—΄ 인덱슀 μ°ΎκΈ°

 - reverse() : λ°°μ—΄ μ—­μˆœ μ •λ ¬

 - sort() : μ§€μ •ν•œ 쑰건에 따라 μ •λ ¬

 - toString() : μ§€μ •ν•œ 뢀뢄을 λ¬Έμžμ—΄λ‘œ λ°˜ν™˜

 

  βœ”οΈ  splice( )

    [ λ§€κ°œλ³€μˆ˜κ°€ 1개인 경우 ]

     - μ£Όμ–΄μ§„ 인덱슀 μ΄ν›„μ˜ κ°’ μ‚­μ œ

var num = [1, 2, 3, 4, 5]일 λ•Œ splice(2)λŠ”
 ν˜„μž¬ λ°°μ—΄μ—μ„œ 2번 인덱슀 μ΄ν›„μ˜ 값인 [3, 4, 5] μ‚­μ œ

즉, numμ—λŠ” [1, 2]만 λ‚¨μŒ

 

      [ λ§€κ°œλ³€μˆ˜κ°€ 2개인 경우 ]

     - μ£Όμ–΄μ§„ 인덱슀 μ΄ν›„μ˜ 값을 μ§€μ •ν•œ 개수만큼 μ‚­μ œ

var text = ["html", "css", "web", "js"]; 일 λ•Œ splice(2,1)은
 ν˜„μž¬ λ°°μ—΄μ—μ„œ 2번 μΈλ±μŠ€μ—μ„œλΆ€ν„°  총 1개λ₯Ό μ‚­μ œν•˜λΌλŠ” 의미 - web μ‚­μ œ

즉, textμ—λŠ” ["html", "css", "js"]만 λ‚¨μŒ

 

     [ λ§€κ°œλ³€μˆ˜κ°€ 3개인 경우 ]

     - μ£Όμ–΄μ§„ 인덱슀 μ΄ν›„μ˜ 값을 μ§€μ •ν•œ 개수만큼 μ‚­μ œν•˜κ³  μ§€μ •ν•œ μš”μ†Œ μΆ”κ°€

var text = ["html", "css", "js"]; 일 λ•Œ, splice(2,1,"jQuery") ν•˜λ©΄
 ν˜„μž¬ λ°°μ—΄μ—μ„œ 2번 μΈλ±μŠ€λ‘œλΆ€ν„° 1개λ₯Ό μ‚­μ œν•˜κ³  jQueryλ₯Ό μΆ”κ°€ν•˜λŠ” 의미 - js μ‚­μ œ, jQuery μΆ”κ°€

즉, testμ—λŠ” ["html", "css", "jQuery"]의 ν˜•νƒœ

 

βœ”οΈ  slice( )

    [ λ§€κ°œλ³€μˆ˜κ°€ 1개인 경우 ]

     - μ£Όμ–΄μ§„ 인덱슀 μ΄ν›„μ˜ μš”μ†Œλ₯Ό λͺ¨λ‘ μŠ¬λΌμ΄μ‹±

var num = [1, 2, 3, 4, 5]일 λ•Œ slice(2)λŠ”
 ν˜„μž¬ λ°°μ—΄μ—μ„œ 2번 인덱슀 λΆ€ν„° λ§ˆμ§€λ§‰ μΈλ±μŠ€κΉŒμ§€ 값을 뽑아냄

즉, κΈ°μ‘΄ 배열이 λ³€ν•˜λŠ” 것이 μ•„λ‹ˆλΌ μ›ν•˜λŠ” μš”μ†Œλ₯Ό λ½‘μ•„λ‚΄λŠ” 것 [3, 4, 5]

 

        [ λ§€κ°œλ³€μˆ˜κ°€ 2개인 경우 ]

     - μ£Όμ–΄μ§„ μΈλ±μŠ€λΆ€ν„° μ§€μ •ν•œ 개수만큼 꺼냄

var num = [1, 2, 3, 4, 5]일 λ•Œ slice(2.4)λŠ”
 ν˜„μž¬ λ°°μ—΄μ—μ„œ 2번 μΈλ±μŠ€μ—μ„œλΆ€ν„°  4번인덱슀-1 κΉŒμ§€ 값을 뽑아냄

즉, [3, 4]

β‘‘ λ¬Έμ„œ 객체 λͺ¨λΈ (DOM) : document, image, link λ“±

β‘’ λΈŒλΌμš°μ € κ΄€λ ¨ 객체 : history, location, screen λ“±

1) window : λΈŒλΌμš°μ € μ°½λ§ˆλ‹€ 생성, μ΅œμƒμœ„ μš”μ†Œ

2) document : HTML λ¬Έμ„œ 정보, <body> νƒœκ·Έ λ§Œλ‚˜λ©΄ 생성

3) history : ν˜„μž¬ 창의 μ‚¬μš©μž λ°©λ¬Έ 기둝을 λ°°μ—΄ ν˜•νƒœλ‘œ μ €μž₯

4) location : ν˜„μž¬ νŽ˜μ΄μ§€μ˜ URL

5) screen : ν˜„μž¬ ν™”λ©΄ 정보λ₯Ό μ•Œμ•„λ‚Ό λ•Œ μ‚¬μš©


πŸ“ Javascript 쑰건문

 : if μ•ˆμ— μžˆλŠ” 쑰건식이 참인 경우 해당문을 μ‹€ν–‰

if ( 쑰건식 1 ) {
       μ‹€ν–‰λ¬Έ 1
} else if ( 쑰건식 2 ) {
       μ‹€ν–‰λ¬Έ 2
} else {
       μ‹€ν–‰λ¬Έ 3
}

βœ”οΈ 쑰건식을 κ±°μ§“μœΌλ‘œ μ·¨κΈ‰ν•˜λŠ” κ°’

(1) false      (2) undefined      (3) null      (4) 0      (5) NaN      (6) the empty String ("")

 

βœ”οΈ μ‘°κ±΄λ¬Έμ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” 비ꡐ μ—°μ‚°μž

(1)  === , !==  : ν•œ 값이 λ‹€λ₯Έ κ°’κ³Ό κ°™κ±°λ‚˜ λ‹€λ₯Έμ§€ νŒλ‹¨

(2)  < , > : ν•œ 값이 λ‹€λ₯Έ 값보닀 μž‘κ±°λ‚˜ 큰지 νŒλ‹¨

(3)  <= , >= : ν•œ 값이 λ‹€λ₯Έ 값보닀 μž‘κ±°λ‚˜ 같은지, ν¬κ±°λ‚˜ 같은지 νŒλ‹¨


πŸ“ Javascript 데이터 νƒ€μž…

1) κΈ°λ³Έ νƒ€μž„

 - 숫자, λ¬Έμžμ—΄, boolean, undefinded, null

 - ν•˜λ‚˜μ˜ 값을 가짐

2) μ°Έμ‘°νƒ€μž…

 - λ°°μ—΄, ν•¨μˆ˜, μ •κ·œν‘œν˜„μ‹ λ“±

 - '이름 : κ°’' ν˜•νƒœμ˜ ν”„λ‘œνΌν‹° μ €μž₯

 βœ… μ°Έμ‘°νƒ€μž…(객체) 생성 방법

 β‘  Object( ) μƒμ„±μž ν•¨μˆ˜ 이용

var testObj = new Object();
testObj.name = 'hong';
testObj.age = '25';

 

β‘‘ μ€‘κ΄„ν˜Έλ₯Ό μ΄μš©ν•œ 객체 λ¦¬ν„°λŸ΄ 방식

var testObj = {
        name : 'hong',
        age : '25'
}

 - μ€‘κ΄„ν˜Έ μ•ˆμ΄ λΉ„μ–΄μžˆμœΌλ©΄ 빈 객체 생성

 - μ€‘κ΄„ν˜Έ μ•ˆμ— 'ν”„λ‘œνΌν‹° 이름 : ν”„λ‘œνΌν‹° κ°’' ν˜•νƒœλ‘œ ν‘œκΈ°ν•˜λ©΄ ν•΄λ‹Ή ν”„λ‘œνΌν‹°κ°€ ν¬ν•¨λœ 객체 생성 κ°€λŠ₯

 

 β‘’ μƒμ„±μž ν•¨μˆ˜ 이용

var add = new Fuction('x', 'y', 'return x+y');

 - 'x'와 'y'λŠ” λ§€κ°œλ³€μˆ˜λ₯Ό 의미

 - 'return x+y'λŠ” ν•¨μˆ˜ 호좜 μ‹œ 싀행될 μ½”λ“œλ₯Ό 포함할 λ¬Έμžμ—΄μ„ 의미

 

   βœ”️ 객체 μ ‘κ·Ό 방법

   β‘  λ§ˆμΉ¨ν‘œ . ν‘œκΈ°λ²• 

      testObj.name

      testObj.age

 

   β‘‘ λŒ€κ΄„ν˜Έ [ ] ν‘œκΈ°λ²•

      testObj['name']

      testObj['age']

'Study > HTML CSS JS' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[HTML] html  (0) 2022.11.21
[Front] μ™€μ΄μ–΄ν”„λ ˆμž„  (4) 2022.04.28
[Front] νŽ˜μ΄μ§€ λ ˆμ΄μ•„μ›ƒ  (0) 2022.04.28
[Front] CSS  (0) 2022.04.27
[Front] HTML  (0) 2022.04.26