λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

javascript/πŸ“– study39

[2μ£Όμ°¨ μŠ€ν„°λ””]13μž₯- μŠ€μ½”ν”„ μŠ€μ½”ν”„ λͺ¨λ“  μ‹λ³„μžλŠ” μžμ‹ μ΄ μ„ μ–Έλœ μœ„μΉ˜μ— μ˜ν•΄ λ‹€λ₯Έ μ½”λ“œκ°€ μžμ‹ μ€ μ°Έμ‘°ν•  수 μžˆλŠ” 유효 λ²”μœ„κ°€ κ²°μ •λœλ‹€. μŠ€μ½”ν”„(scope) : μ‹λ³„μžκ°€ μœ νš¨ν•œ λ²”μœ„ μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ½”λ“œλ₯Ό μ‹€ν–‰ν•  λ•Œ μ½”λ“œμ˜ λ¬Έλ§₯(context)λ₯Ό κ³ λ €ν•©λ‹ˆλ‹€. 이름이 같은 두 λ³€μˆ˜μ€‘ μ–΄λ–€ 것을 참쑰할지 κ²°μ •ν•˜λŠ” 것을 μ‹λ³„μž 결정이라고 ν•©λ‹ˆλ‹€. μŠ€μ½”ν”„(scopoe)λž€ μ‹λ³„μžλ₯Ό 검색할 λ•Œ μ‚¬μš©ν•˜λŠ” κ·œμΉ™μ΄λΌκ³  ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ½”λ“œκ°€ μ–΄λ””μ„œ μ‹€ν–‰λ˜λ©° 주변에 μ–΄λ–€μ½”λ“œκ°€ μžˆλŠ”μ§€λ₯Ό λ ‰μ‹œμ»¬ ν™˜κ²½(lexical enviroment)라고 ν•©λ‹ˆλ‹€. 즉, μ½”λ“œμ˜ contextλŠ” λ ‰μ‹œμ»¬ ν™˜κ²½μœΌλ‘œ κ΅¬μ„±λ˜κ³  이λ₯Ό κ΅¬ν˜„ν•œ 것이 μ‹€ν–‰ μ»¨ν…μŠ€νŠΈμž…λ‹ˆλ‹€. μŠ€μ½”ν”„μ˜ μ’…λ₯˜ μ½”λ“œλŠ” μ „μ—­(global)κ³Ό 지역(local)둜 ꡬ뢄할 수 μžˆμŠ΅λ‹ˆλ‹€. ꡬ뢄 μ„€λͺ… μŠ€μ½”ν”„ λ³€μˆ˜ μ „μ—­ μ½”λ“œ.. 2022. 2. 6.
[2μ£Όμ°¨ μŠ€ν„°λ””]12μž₯-ν•¨μˆ˜ ν•¨μˆ˜ μˆ˜ν•™μ—μ„œμ˜ ν•¨μˆ˜ μž…λ ₯(input)을 λ°›μ•„ 좜λ ₯(output)을 λ‚΄λ³΄λ‚΄λŠ” 일련의 과정을 μ •μ˜ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ ν•¨μˆ˜ 일련의 과정을 λ¬Έ(statement)으둜 κ΅¬ν˜„ν•˜κ³  μ½”λ“œ λΈ”λ‘μœΌλ‘œ κ°μ‹Έμ„œ ν•˜λ‚˜μ˜ μ‹€ν–‰ λ‹¨μœ„λ‘œ μ •μ˜ν•œ 것 ν•¨μˆ˜μ˜ μ •μ˜λ₯Ό 톡해 생성 ν•¨μˆ˜ν˜ΈμΆœμ„ 톡해 μ‹€ν–‰ ν•¨μˆ˜ μ‚¬μš© 이유 μ½”λ“œμ˜ μž¬μ‚¬μš©μ„ ν†΅ν•œ 쀑볡 μ΅œμ†Œν™” μœ μ§€ 보수의 νŽΈμ˜μ„± μ½”λ“œ μ‹ λ’°μ„± μ½”λ“œμ˜ 가독성 ν•¨μˆ˜ λ¦¬ν„°λŸ΄ μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ ν•¨μˆ˜λŠ” 객체 νƒ€μž…μ˜ κ°’ μž…λ‹ˆλ‹€. ν•¨μˆ˜λ„ ν•¨μˆ˜ λ¦¬ν„°λŸ΄λ‘œ 생성 κ°€λŠ₯ 즉, ν•¨μˆ˜λŠ” 객체 ν•¨μˆ˜λ₯Ό 객체둜 μ·¨κΈ‰ν•˜λŠ” 것은 js의 νŠΉμ§• 일반 κ°μ²΄λŠ” ν˜ΈμΆœν•  수 μ—†μ§€λ§Œ ν•¨μˆ˜λŠ” 호좜 κ°€λŠ₯ ν•¨μˆ˜ μ •μ˜ λ³€μˆ˜λŠ” μ„ μ–Έ ν•œλ‹€κ³  ν•˜μ§€λ§Œ ν•¨μˆ˜λŠ” μ •μ˜ ν•œλ‹€κ³  ν‘œν˜„ν•¨ ν•¨μˆ˜ μ •μ˜λŠ” 4가지 λ°©λ²•μœΌλ‘œ κ°€λŠ₯ ν•¨μˆ˜ μ„ μ–Έλ¬Έ ν•¨μˆ˜ ν‘œν˜„μ‹ Function μƒμ„±μž ν•¨μˆ˜.. 2022. 2. 6.
[2μ£Όμ°¨ μŠ€ν„°λ””]11μž₯-μ›μ‹œκ°’κ³Ό 객체의 비ꡐ μ›μ‹œ κ°’κ³Ό 객체의 비ꡐ μ›μ‹œ 값은 λ³€κ²½ λΆˆκ°€λŠ₯ν•œ κ°’ κ°μ²΄λŠ” λ³€κ²½ κ°€λŠ₯ν•œ κ°’ μ›μ‹œ 값을 λ³€μˆ˜μ— ν• λ‹Ή ν•˜λ©΄ μ‹€μ œ 값이 μ €μž₯ 객체λ₯Ό λ³€μˆ˜μ— ν• λ‹Ήν•˜λ©΄ μ°Έμ‘° 값이 μ €μž₯μ›μ‹œκ°’μ„ κ°–λŠ” λ³€μˆ˜λ₯Ό λ‹€λ₯Έ λ³€μˆ˜μ— ν• λ‹Ή μ‹œ μ›μ‹œ 값이 λ³΅μ‚¬λ˜μ–΄ 전달 λ©λ‹ˆλ‹€. 이λ₯Ό 값에 μ˜ν•œ 전달(pass by value)이라고 ν•©λ‹ˆλ‹€. 객체λ₯Ό κ°€λ¦¬ν‚€λŠ” λ³€μˆ˜λ₯Ό λ‹€λ₯Έ λ³€μˆ˜μ— ν• λ‹Ήν•˜λ©΄ μ›λ³Έμ˜ **참쑰값이 λ³΅μ‚¬λ˜μ–΄ 전달 λ©λ‹ˆλ‹€. 이λ₯Ό 참쑰에 μ˜ν•œ 전달(pass by value) 라고 ν•©λ‹ˆλ‹€. μ›μ‹œ κ°’ λ³€κ²½ λΆˆκ°€λŠ₯ν•œ κ°’ μ›μ‹œ 값은 λ³€κ²½ λΆˆκ°€λŠ₯ ν•œ κ°’μœΌλ‘œ λ°μ΄ν„°μ˜ 신뒰성을 보μž₯ μž¬ν• λ‹Ή μ‹œ μ΄μ „μ˜ μ›μ‹œ 값을 λ³€κ²½ν•˜λŠ” 것이 μ•„λ‹ˆλΌ λ³€μˆ˜κ°€ μƒˆλ‘œμš΄ λ©”λͺ¨λ¦¬ κ³΅κ°„μ˜ μ£Όμ†Œλ₯Ό 참쑰함 constλŠ” λ³€μˆ˜μ˜ μž¬ν• λ‹Ήμ„ λ§‰λŠ” 것, μ›μ‹œ κ°’ μžμ²΄λŠ” λ³€κ²½λ˜λŠ” 것 μ•„λ‹˜λ¬Έμžμ—΄κ³Ό λΆˆλ³€μ„±.. 2022. 2. 6.
[2μ£Όμ°¨ μŠ€ν„°λ””]10μž₯-객체 λ¦¬ν„°λŸ΄ 객체 λ¦¬ν„°λŸ΄ κ°μ²΄λž€? μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” 객체 기반의 ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ μž…λ‹ˆλ‹€. μ›μ‹œκ°’μ„ μ œμ™Έν•œ λ‚˜λ¨Έμ§€λŠ” λͺ¨λ‘ 객체 μž…λ‹ˆλ‹€. μ›μ‹œ 값은 λ³€κ²½ λΆˆκ°€λŠ₯ν•œ κ°’μ΄μ§€λ§Œ, κ°μ²΄λŠ” λ³€κ²½ κ°€λŠ₯ν•œ κ°’μž…λ‹ˆλ‹€. κ°μ²΄λŠ” ν”„λ‘œνΌν‹°(property)둜 κ΅¬μ„±λœ 집합이며 ν”„λ‘œνΌν‹°λŠ” ν‚€(key)와 κ°’(value)둜 κ΅¬μ„±λœλ‹€. ν”„λ‘œνΌν‹°μ˜ 값이 ν•¨μˆ˜μΌ 경우 λ©”μ„œλ“œ(method)라고 λΆ€λ¦…λ‹ˆλ‹€. μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œλŠ” 객체와 ν•¨μˆ˜λŠ” λ°€μ ‘ν•œ 관계 ν•¨μˆ˜λ‘œ 객체λ₯Ό μƒμ„±ν•˜κΈ°λ„ ν•˜κ³  ν•¨μˆ˜ μžμ²΄κ°€ 객체이기도 ν•©λ‹ˆλ‹€. 객체의 생성 μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” ν”„λ‘œν† νƒ€μž… 기반 객체지ν–₯ μ–Έμ–΄λ‘œ λ‹€μ–‘ν•œ 객체 생성방법을 가짐 객체 λ¦¬ν„°λŸ΄ Object μƒμ„±μž ν•¨μˆ˜ μƒμ„±μž ν•¨μˆ˜ Object.create λ©”μ„œλ“œ 클래슀(es6) 객체λ₯Ό μ€‘κ΄„ν˜Έ{} 내에 ν”„λ‘œνΌν‹°λ₯Ό 직접 μ •μ˜ν•΄μ„œ μ‚¬μš©ν•˜λŠ” 것은 객.. 2022. 2. 6.
[μŠ€ν„°λ”” 1μ£Όμ°¨]9μž₯ νƒ€μž…λ³€ν™” 와 단좕 평가 νƒ€μž… λ³€ν™˜κ³Ό 단좕 평가 κ°œλ°œμžκ°€ μ˜λ„μ μœΌλ‘œ κ°’μ˜ νƒ€μž…μ„ λ³€ν™˜ν•˜λŠ” 것을 λͺ…μ‹œμ  νƒ€μž… λ³€ν™˜ λ˜λŠ” νƒ€μž… μΊμŠ€νŒ… * 이라고 ν•©λ‹ˆλ‹€ 개발자의 μ˜λ„μ™€ 상관없이 ν‘œν˜„μ‹μ„ ν‰κ°€ν•˜λŠ” 도쀑에 μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진에 μ˜ν•΄ μžλ™μœΌλ‘œ λ³€ν™˜ λ˜λŠ” 것을 암묡적 νƒ€μž… λ³€ν™˜ λ˜λŠ” νƒ€μž… κ°•μ œ λ³€ν™˜ 이라 ν•©λ‹ˆλ‹€. 암묡적 νƒ€μž… λ³€ν™˜ 암묡적 νƒ€μž…λ³€ν™˜μ΄ λ°œμƒν•˜λ©΄ λ¬Έμžμ—΄, 숫자, λΆˆλ¦¬μ–Έ 같은 μ›μ‹œνƒ€μž… 쀑 ν•˜λ‚˜λ‘œ νƒ€μž…μ„ μžλ™ λ³€ν™˜ν•œλ‹€.λ¬Έμžμ—΄νƒ€μž…μœΌλ‘œ λ³€ν™˜ +μ—°μ‚°μžλŠ” λ¬Έμžμ—΄μ„ λ§Œλ‚˜λ©΄ λ¬Έμžμ—΄ μ—°κ²° μ—°μ‚°μžλ‘œ λ™μž‘ν•˜μ—¬ μ•”λ¬΅μ μœΌλ‘œ λ¬Έμžμ—΄λ‘œ νƒ€μž…μ„ λ³€ν™˜ν•¨ // 숫자 νƒ€μž… 0 + '' // -> "0" -0 + '' // -> "0" 1 + '' // -> "1" -1 + '' // -> "-1" NaN +.. 2022. 2. 4.
[μŠ€ν„°λ”” 1μ£Όμ°¨]7μž₯ μ—°μ‚°μž 7μž₯ μ—°μ‚°μž μ—°μ‚°μžλŠ” ν•˜λ‚˜μ˜μƒμ˜ ν‘œν˜„μ‹μ„ λŒ€μƒμœΌλ‘œ μ‚°μˆ , ν• λ‹Ή, 비ꡐ, 논리, νƒ€μž…, μ§€μˆ˜ μ—°μ‚° 등을 μˆ˜ν–‰ν•΄ ν•˜λ‚˜μ˜ 값을 λ§Œλ“­λ‹ˆλ‹€. μ˜ˆμ‹œ // μ‚°μˆ  μ—°μ‚°μž 5 * 4; // -> 20 // λ¬Έμžμ—΄ μ—°κ²° μ—°μ‚°μž "My name is " + "Lee"; // -> 'My name is Lee' // ν• λ‹Ή μ—°μ‚°μž color = "red"; // -> 'red' // 비ꡐ μ—°μ‚°μž 3 > 5; // -> false // 논리 μ—°μ‚°μž true && false; // -> false // νƒ€μž… μ—°μ‚°μž typeof "Hi"; // -> string μ‚°μˆ  μ—°μ‚°μž ν”Όμ—°μ‚°μžλ₯Ό λŒ€μƒμœΌλ‘œ μˆ˜ν•™μ  계산을 μˆ˜ν–‰ν•΄ μƒˆλ‘œμš΄ 숫자 값을 λ§Œλ“ λ‹€ 이항 μ‚°μˆ  μ—°μ‚°μž 2개의 ν”Όμ—°μ‚°μžλ₯Ό μ—°μ‚°ν•˜μ—¬ 숫자 κ°’ λ§Œλ“¬ +λ”ν•˜κΈ° , -λΉΌκΈ° , *κ³±ν•˜κΈ° ,.. 2022. 2. 4.