λͺ©λ‘μ „체 κΈ€ (244)

🀍 은지log 🀍

ν•¨μˆ˜μ™€ 일급 객체

🎣 일급 객체 무λͺ…μ˜ λ¦¬ν„°λŸ΄λ‘œ μƒμ„±ν• μˆ˜ μžˆλ‹€. 즉, λŸ°νƒ€μž„μ— 생성이 κ°€λŠ₯ν•˜λ‹€. λ³€μˆ˜λ‚˜ 자료ꡬ쑰(객체,λ°°μ—΄ λ“±)에 μ €μž₯ν• μˆ˜ μžˆλ‹€. ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜μ— μ „λ‹¬ν• μˆ˜ μžˆλ‹€. ν•¨μˆ˜μ˜ λ°˜ν™˜κ°’μœΌλ‘œ μ‚¬μš©ν• μˆ˜ μžˆλ‹€. ν•¨μˆ˜λŠ” 값을 μ‚¬μš©ν• μˆ˜ μžˆλŠ” κ³³(λ³€μˆ˜ ν• λ‹Ήλ¬Έ, 객체의 ν”„λ‘œνΌν‹° κ°’, λ°°μ—΄μ˜ μš”μ†Œ, ν•¨μˆ˜ 호좜의 인수, ν•¨μˆ˜ λ°˜ν™˜λ¬Έ)이라면 μ–΄λ””μ„œλ“ μ§€ λ¦¬ν„°λŸ΄λ‘œ μ •μ˜ν•  수 있으며 λŸ°νƒ€μž„μ— ν•¨μˆ˜ 객체둜 ν‰κ°€λœλ‹€. 일급 κ°μ²΄λ‘œμ„œ ν•¨μˆ˜κ°€ κ°€μ§€λŠ” κ°€μž₯ 큰 νŠΉμ§•μ€ 일반 객체와 같이 ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜μ— 전달할 수 있으며, ν•¨μˆ˜μ˜ λ°˜ν™˜κ°’μœΌλ‘œ μ‚¬μš©ν•  μˆ˜λ„ μžˆλ‹€λŠ” 것이닀. ν•¨μˆ˜λŠ” 객체 μ΄μ§€λ§Œ 일반 κ°μ²΄μ™€λŠ” 차이가 μžˆλ‹€. 일반 κ°μ²΄λŠ” ν˜ΈμΆœν• μˆ˜ μ—†μ§€λ§Œ ν•¨μˆ˜ κ°μ²΄λŠ” ν˜ΈμΆœν•  수 μžˆλ‹€. 그리고 ν•¨μˆ˜ κ°μ²΄λŠ” 일반 κ°μ²΄μ—λŠ” μ—†λŠ” ν•¨μˆ˜ 고유의 ν”„λ‘œνΌν‹°λ₯Ό μ†Œμœ ν•œλ‹€...

πŸ’œ λͺ¨λ˜Javascript 2022. 9. 28. 14:23
μƒμ„±μž ν•¨μˆ˜μ— μ˜ν•œ 객체 생성

🎣 Object μƒμ„±μž ν•¨μˆ˜ newμ—°μ‚°μžμ™€ ν•¨κ»˜ Object μƒμ„±μž ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λ©΄ 빈 객체λ₯Ό μƒμ„±ν•˜μ—¬ λ°˜ν™˜ν•œλ‹€. 빈 객체λ₯Ό μƒμ„±ν•œ 이후 ν”„λ‘œνΌν‹° λ˜λŠ” λ©”μ„œλ“œλ₯Ό μΆ”κ°€ν•˜μ—¬ 객체λ₯Ό μ™„μ„±ν• μˆ˜ μžˆλ‹€. μƒμ„±μž ν•¨μˆ˜λž€ new μ—°μ‚°μžμ™€ ν•¨κ»˜ ν˜ΈμΆœν•˜μ—¬ 객체(μΈμŠ€ν„΄μŠ€)λ₯Ό μƒμ„±ν•˜λŠ” ν•¨μˆ˜λ₯Ό λ§ν•œλ‹€. μƒμ„±μž ν•¨μˆ˜μ— μ˜ν•΄ μƒμ„±λœ 객체λ₯Ό μΈμŠ€ν„΄μŠ€λΌ ν•œλ‹€. 🎣 μƒμ„±μž ν•¨μˆ˜ 객체 λ¦¬ν„°λŸ΄μ— μ˜ν•œ 객체 생성 λ°©μ‹μ˜ 문제점 객체 λ¦¬ν„°λŸ΄μ— μ˜ν•œ 객체 생성 방식은 직관적이고 κ°„νŽΈν•˜λ‹€. ν•˜μ§€λ§Œ 객체 λ¦¬ν„°λŸ΄μ— μ˜ν•œ 객체 생성 방식은 단 ν•˜λ‚˜μ˜ 객체만 μƒμ„±ν•œλ‹€. λ”°λΌμ„œ λ™μΌν•œ ν”„λ‘œνΌν‹°λ₯Ό κ°–λŠ” 객체λ₯Ό μ—¬λŸ¬ 개 생성해야 ν•˜λŠ” 경우 맀번 같은 ν”„λ‘œνΌν‹°λ₯Ό κΈ°μˆ ν•΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— λΉ„νš¨μœ¨μ  이닀. 객체 λ¦¬ν„°λŸ΄μ— μ˜ν•΄ 객체λ₯Ό μƒμ„±ν•˜λŠ” 경우 ν”„λ‘œνΌν‹° ꡬ쑰가 동일..

πŸ’œ λͺ¨λ˜Javascript 2022. 9. 28. 14:23
ν”„λ‘œνΌν‹° μ–΄νŠΈλ¦¬λ·°νŠΈ

🎣 λ‚΄λΆ€ 슬둯과 λ‚΄λΆ€ λ©”μ„œλ“œ λŠ” μžλ°”μŠ€νŠΈλ¦½νŠΈ μ—”μ§„μ˜ κ΅¬ν˜„ μ•Œκ³ λ¦¬μ¦˜μ„ μ„€λͺ…ν•˜κΈ° μœ„ν•΄ ECMAScript μ‚¬μ–‘μ—μ„œ μ‚¬μš©ν•˜λŠ” μ˜μ‚¬ ν”„λ‘œνΌν‹°μ™€ μ˜μ‚¬ λ©”μ„œλ“œ λ‹€. 이쀑 λŒ€κ΄„ν˜Έ [[...]]둜 감싼 이름듀이 λ‚΄λΆ€ 슬둯과 λ‚΄λΆ€ λ©”μ„œλ“œλ‹€. λ‚΄λΆ€ 슬둯과 λ‚΄λΆ€ λ©”μ„œλ“œλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ μ—”μ§„μ˜ λ‚΄λΆ€ λ‘œμ§μ΄λ―€λ‘œ μ›μΉ™μ μœΌλ‘œ μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” λ‚΄λΆ€ 슬둯과 λ‚΄λΆ€ λ©”μ„œλ“œμ— μ§μ ‘μ μœΌλ‘œ μ ‘κ·Όν•˜κ±°λ‚˜ ν˜ΈμΆœν•  수 μžˆλŠ” 방법을 μ œκ³΅ν•˜μ§€ μ•ŠλŠ”λ‹€. 🎣 ν”„λ‘œνΌν‹° μ–΄νŠΈλ¦¬λ·°νŠΈμ™€ λ””μŠ€ν¬λ¦½ν„° 객체 μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 ν”„λ‘œνΌν‹°λ₯Ό μƒμ„±ν• λ•Œ ν”„λ‘œνΌν‹°μ˜ μƒνƒœλ₯Ό λ‚˜νƒ€λ‚΄λŠ” ν”„λ‘œνΌν‹° μ–΄νŠΈλ¦¬λ·°νŠΈλ₯Ό κΈ°λ³Έκ°’μœΌλ‘œ μžλ™ μ •μ˜ ν•œλ‹€. (ν”„λ‘œνΌν‹°μ˜ μƒνƒœλž€ ν”„λ‘œνΌν‹°μ˜ κ°’, κ°’μ˜ κ°±μ‹  κ°€λŠ₯ μ—¬λΆ€, μ—΄κ±° κ°€λŠ₯ μ—¬λΆ€, μž¬μ •μ˜ κ°€λŠ₯ μ—¬λΆ€λ₯Ό λ§ν•œλ‹€.) ν”„λ‘œνΌν‹° μ–΄νŠΈλ¦¬λ·°νŠΈλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진이 관이..

πŸ’œ λͺ¨λ˜Javascript 2022. 9. 28. 14:22
μŠ€μ½”ν”„ (Scope)

λͺ¨λ“  μ‹λ³„μž( λ³€μˆ˜μ΄λ¦„, ν•¨μˆ˜μ΄λ¦„, 클래슀 이름 λ“±)λŠ” μžμ‹ μ΄ μ„ μ–Έλœ μœ„μΉ˜μ— μ˜ν•΄ λ‹€λ₯Έ μ½”λ“œκ°€ μ‹λ³„μž μžμ‹ μ„ μ°Έμ‘°ν• μˆ˜ μžˆλŠ” μœ νš¨λ²”μœ„κ°€ κ²°μ • λœλ‹€. μŠ€μ½”ν”„λŠ” μ‹λ³„μžκ°€ μœ νš¨ν•œ λ²”μœ„λ₯Ό λ§ν•œλ‹€. μ‹λ³„μžλŠ” μ–΄λ–€ 값을 ꡬ별할 수 μžˆμ–΄μ•Ό ν•˜λ―€λ‘œ 유일 ν•΄μ•Ό ν•œλ‹€. μ „μ—­κ³Ό μ „μ—­ μŠ€μ½”ν”„ ( Global Scope ) μ „μ—­μ΄λž€ μ½”λ“œμ˜ κ°€μž₯ λ°”κΉ₯ μ˜μ—­μ„ λ§ν•˜κ³  μ „μ—­ μŠ€μ½”ν”„λ₯Ό λ§Œλ“ λ‹€ μ „μ—­λ³€μˆ˜λŠ” μ–΄λ””μ„œλ“ μ§€ μ°Έμ‘°ν•  수 μžˆλ‹€. 지역과 지역 μŠ€μ½”ν”„ ( Local Scope ) μ§€μ—­μ΄λž€ ν•¨μˆ˜ λͺΈμ²΄ λ‚΄λΆ€λ₯Ό λ§ν•˜κ³  지역 μŠ€μ½”ν”„λ₯Ό λ§Œλ“ λ‹€ μ§€μ—­λ³€μˆ˜λŠ” μžμ‹ μ˜ 지역 μŠ€μ½”ν”„μ™€ ν•˜μœ„ 지역 μŠ€μ½”ν”„μ—μ„œ 유효 ν•˜λ‹€. ⭐️ μ•ˆμ—μ„œλŠ” 밖을 λ³Ό 수 μžˆμ§€λ§Œ λ°–μ—μ„œλŠ” μ•ˆμ„ λ³Ό 수 μ—†κ³  접근이 μ•ˆλœλ‹€. πŸ› μ „μ—­ λ³€μˆ˜μ˜ 문제점 μ „μ—­λ³€μˆ˜μ˜ λ¬΄λΆ„λ³„ν•œ μ‚¬μš©μ€ μœ„ν—˜ν•˜λ‹€. μ „μ—­..

πŸ’œ λͺ¨λ˜Javascript 2022. 9. 28. 14:22
ν•¨μˆ˜

ν•¨μˆ˜λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ κ°€μž₯ μ€‘μš”ν•œ 핡심 κ°œλ…μ΄λ©°, 또 λ‹€λ₯Έ μ€‘μš”ν•œ 핡심 κ°œλ…λ“€( μŠ€μ½”ν”„, μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ, ν΄λ‘œμ €, μƒμ„±μž ν•¨μˆ˜μ— μ˜ν•œ 객체 생성, λ©”μ„œλ“œ, this, ν”„λ‘œν† νƒ€μž…, λͺ¨λ“ˆν™” λ“±)κ³Ό κΉŠμ€ 관련이 μžˆλ‹€. ν•¨μˆ˜λŠ” λ‹€λ₯Έ λ³€μˆ˜μ™€ λ§ˆμ°¬κ°€μ§€λ‘œ λ³€μˆ˜μ— 할당이 되고 ν•¨μˆ˜μ˜ 맀개 λ³€μˆ˜λ‘œ 전달이 되며 λ¦¬ν„΄κ°’μœΌλ‘œλ„ 리턴이 λœλ‹€. (Function Expression) ν•¨μˆ˜λŠ” ν”„λ‘œκ·Έλž¨μ„ κ΅¬μ„±ν•˜λŠ” 기본적이 building block 이며 sub-program 이라고도 뢈리며 μ—¬λŸ¬λ²ˆ μž¬μ‚¬μš© κ°€λŠ₯ν•˜λ‹€λŠ” μž₯점이 μžˆλ‹€. ν•œκ°€μ§€ task λ‚˜ μ–΄λ– ν•œ 값을 κ³„μ‚°ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•œλ‹€. ⭐️ ν•¨μˆ˜λŠ” input κ³Ό output이 μ€‘μš”ν•˜κ³  ν•¨μˆ˜μ˜ 이름을 μ •ν•˜λŠ”κ²ƒμ΄ μ€‘μš”! function name(param1, param2) { body..

πŸ’œ λͺ¨λ˜Javascript 2022. 9. 28. 14:21
μ›μ‹œκ°’κ³Ό 객체 비ꡐ

μ›μ‹œ νƒ€μž…κ³Ό 객체 νƒ€μž…μ€ 크게 μ„Έ 가지 μΈ‘λ©΄μ—μ„œ λ‹€λ₯΄λ‹€. μ›μ‹œ νƒ€μž…μ˜ κ°’, 즉 μ›μ‹œ 값은 λ³€κ²½ λΆˆκ°€λŠ₯ν•œ κ°’ 이닀. 이에 λΉ„ν•΄ 객체 νƒ€μž…μ˜ κ°’, 즉 κ°μ²΄λŠ” λ³€κ²½ κ°€λŠ₯ν•œ 값이닀. μ›μ‹œ 값을 λ³€μˆ˜μ— ν• λ‹Ήν•˜λ©΄ λ³€μˆ˜μ—λŠ” μ‹€μ œ 값이 μ €μž₯λœλ‹€. 이에 λΉ„ν•΄ 객체λ₯Ό λ³€μˆ˜μ— ν• λ‹Ήν•˜λ©΄ λ³€μˆ˜μ—λŠ” 참쑰값이 μ €μž₯λœλ‹€. μ›μ‹œκ°’μ„ κ°–λŠ” λ³€μˆ˜λ₯Ό λ‹€λ₯Έ λ³€μˆ˜μ— ν• λ‹Ήν•˜λ©΄ μ›λ³Έμ˜ μ›μ‹œ 값이 λ³΅μ‚¬λ˜μ–΄ μ „λ‹¬λœλ‹€. 이λ₯Ό 값에 μ˜ν•œ 전달 이라 ν•œλ‹€. 이에 λΉ„ν•΄ 객체λ₯Ό κ°€λ¦¬ν‚€λŠ” λ³€μˆ˜λ₯Ό λ‹€λ₯Έ λ³€μˆ˜μ— ν• λ‹Ήν•˜λ©΄ μ›λ³Έμ˜ 참쑰값이 λ³΅μ‚¬λ˜μ–΄ μ „λ‹¬λœλ‹€. 이λ₯Ό 참쑰에 μ˜ν•œ 전달 이라 ν•œλ‹€. πŸ’‘ μ›μ‹œ νƒ€μž…κ³Ό μ°Έμ‘° νƒ€μž…μ˜ 차이점은 μ›μ‹œνƒ€μž…μ€ λΆˆλ³€μ„±μ„ κ°–κ³ μžˆλ‹€λŠ” 것이고 κΉŠμ€ 볡사 (μ›μ‹œ νƒ€μž…) 와 얕은 볡사 ( μ°Έμ‘° νƒ€μž…) 의 차이점은 κΉŠμ€ λ³΅μ‚¬λŠ” 값을 λ³΅μ‚¬ν•˜κ³  얕은볡..

πŸ’œ λͺ¨λ˜Javascript 2022. 9. 28. 14:21
객체 λ¦¬ν„°λŸ΄

객체 μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” 객체 기반의 ν”„λ‘œκ·Έλž˜λ° 언어이며, μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό κ΅¬μ„±ν•˜λŠ” 거의 λͺ¨λ“  것이 객체 이닀. πŸ“Œ μ›μ‹œκ°’μ„ μ œμ™Έν•œ λ‚˜λ¨Έμ§€ κ°’(ν•¨μˆ˜,λ°°μ—΄,μ •κ·œ ν‘œν˜„μ‹ λ“±)은 λͺ¨λ‘ 객체닀. κ°μ²΄λŠ” ν”„λ‘œνΌν‹°(객체의 μƒνƒœλ₯Ό λ‚˜νƒ€λ‚΄λŠ” κ°’data) 와 λ©”μ„œλ“œ(ν”„λ‘œνΌν‹°λ₯Ό μ°Έμ‘°ν•˜κ³  μ‘°μž‘ν•  수 μžˆλŠ” λ™μž‘)둜 κ΅¬μ„±λœ 집합체 이닀. ν”„λ‘œνΌν‹° κ°μ²΄λŠ” ν”„λ‘œνΌν‹°μ˜ 집합이며, ν”„λ‘œνΌν‹°λŠ” ν‚€(빈 λ¬Έμžμ—΄μ„ ν¬ν•¨ν•˜λŠ” λͺ¨λ“  λ¬Έμžμ—΄ λ˜λŠ” μ‹¬λ²Œ κ°’)와 κ°’(μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ μ‚¬μš©ν• μˆ˜ μžˆλŠ” λͺ¨λ“  κ°’) 으둜 ꡬ성 λœλ‹€. let person = { // ν”„λ‘œνΌν‹° ν‚€λŠ” name , ν”„λ‘œνΌν‹° 값은 'Lee' name: 'Lee', // ν”„λ‘œνΌν‹° ν‚€λŠ” age , 값은 20 age: 20 }; // {name: 'Lee' , age: 20} λ©”μ„œλ“œ ν”„λ‘œνΌν‹° 값이..

πŸ’œ λͺ¨λ˜Javascript 2022. 9. 28. 14:20
단좕평가

논리곱( && ) μ—°μ‚°μž 'cat' && 'dog' // "dog" 논리곱(&&) μ—°μ‚°μžλŠ” λ‘κ°œμ˜ ν”Όμ—°μ‚°μžκ°€ λͺ¨λ‘ true둜 ν‰κ°€λ λ•Œ trueλ₯Ό λ°˜ν™˜ν•œλ‹€. 논리곱 μ—°μ‚°μžλŠ” μ’Œν•­μ—μ„œ μš°ν•­μœΌλ‘œ 평가가 μ§„ν–‰λœλ‹€. 첫번째 ν”Όμ—°μ‚°μž 'cat'은 Truthy κ°’μ΄λ―€λ‘œ true둜 ν‰κ°€λœλ‹€. ν•˜μ§€λ§Œ λ‘λ²ˆμ§Έ ν”Όμ—°μ‚°μžκ°€ μœ„ 논리곱 μ—°μ‚°μž ν‘œν˜„μ‹μ˜ 평가 κ²°κ³Όλ₯Ό κ²°μ •ν•œλ‹€. μ΄λ•Œ 논리곱 μ—°μ‚°μžλŠ” 논리 μ—°μ‚°μ˜ κ²°κ³Όλ₯Ό κ²°μ •ν•˜λŠ” λ‘λ²ˆμ§Έ ν”Όμ—°μ‚°μž, 즉 λ¬Έμžμ—΄ 'dog'λ₯Ό κ·ΈλŒ€λ‘œ λ°˜ν™˜ν•œλ‹€. 논리합( || ) μ—°μ‚°μž 'cat' || 'dog' // "cat" 논리합( || ) μ—°μ‚°μžλŠ” λ‘κ°œμ˜ ν”Όμ—°μ‚°μž 쀑 ν•˜λ‚˜λ§Œ true둜 ν‰κ°€λ˜μ–΄λ„ trueλ₯Ό λ°˜ν™˜ν•œλ‹€. 논리합 μ—°μ‚°μžλ„ μ’Œν•­μ—μ„œ μš°ν•­μœΌλ‘œ 평가가 μ§„ν–‰λœλ‹€. 첫번째 ν”Όμ—°μ‚°μž 'cat'은 Tr..

πŸ’œ λͺ¨λ˜Javascript 2022. 9. 28. 14:19