[JavaScript] RegExp

μ •κ·œ ν‘œν˜„μ‹μ΄λž€? μ •κ·œ ν‘œν˜„μ‹(regular expression)은 μΌμ •ν•œ νŒ¨ν„΄μ„ 가진 λ¬Έμžμ—΄μ˜ 집합을 ν‘œν˜„ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” ν˜•μ‹ μ–Έμ–΄(formal language)μž…λ‹ˆλ‹€. μ •κ·œ ν‘œν˜„μ‹μ€ μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ 고유 문법이 μ•„λ‹ˆλ©°, λŒ€λΆ€λΆ„μ˜ ν”„λ‘œκ·Έλž˜λ° 언어와 μ½”λ“œ 에디터에 λ‚΄μž₯λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. μ •κ·œ ν‘œν˜„μ‹μ€ λ¬Έμžμ—΄μ„ λŒ€μƒμœΌλ‘œ νŒ¨ν„΄ 맀칭 κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. νŒ¨ν„΄ 맀칭 κΈ°λŠ₯μ΄λž€, νŠΉμ • νŒ¨ν„΄κ³Ό μΌμΉ˜ν•˜λŠ” λ¬Έμžμ—΄μ„ κ²€μƒ‰ν•˜κ±°λ‚˜ μΆ”μΆœ λ˜λŠ” μΉ˜ν™˜ν•  수 μžˆλŠ” κΈ°λŠ₯을 λ§ν•©λ‹ˆλ‹€. *μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” νŽ„μ˜ μ •κ·œ ν‘œν˜„μ‹ 문법을 ES3λΆ€ν„° λ„μž… 예λ₯Ό λ“€μ–΄, νšŒμ›κ°€μž… ν™”λ©΄μ—μ„œ μ‚¬μš©μžλ‘œλΆ€ν„° μž…λ ₯받은 νœ΄λŒ€ν° μ „ν™”λ²ˆν˜Έκ°€ μœ νš¨ν•œ λ²ˆν˜ΈμΈμ§€ "숫자 3개 + '-' + 숫자 4개 + '-' + 숫자 4개" λΌλŠ” μΌμ •ν•œ νŒ¨ν„΄μ„ μ •κ·œ ν‘œν˜„μ‹μœΌλ‘œ μ •μ˜ν•˜κ³  μ‚¬μš©..

[JavaScript] Date

ν‘œμ€€ 빌트인 객체인 DateλŠ” λ‚ μ§œμ™€ μ‹œκ°„(μ—°, μ›”, 일, μ‹œ, λΆ„, 초, λ°€λ¦¬μ΄ˆ)을 μœ„ν•œ λ©”μ„œλ“œλ₯Ό μ œκ³΅ν•˜λŠ” 빌트인 κ°μ²΄μ΄λ©΄μ„œ μƒμ„±μž ν•¨μˆ˜μž…λ‹ˆλ‹€. ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ€ μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œκ°€ μ‹€ν–‰λœ μ‹œμŠ€ν…œμ˜ μ‹œκ³„μ— μ˜ν•΄ κ²°μ •λ©λ‹ˆλ‹€. UTC(ν˜‘μ • μ„Έκ³„μ‹œ) : ꡭ제 ν‘œμ€€μ‹œλ‘œ GMT(κ·Έλ¦¬λ‹ˆμΉ˜ ν‰κ· μ‹œ)둜 λΆˆλ¦¬κΈ°λ„ 함 KST(ν•œκ΅­ ν‘œμ€€μ‹œ) : UTC에 9μ‹œκ°„μ„ λ”ν•œ μ‹œκ°„μœΌλ‘œ KSTλŠ” UTC보닀 9μ‹œκ°„μ΄ 빠름 Data μƒμ„±μž ν•¨μˆ˜ Date μƒμ„±μž ν•¨μˆ˜λ‘œ μƒμ„±ν•œ Data κ°μ²΄λŠ” λ‚΄λΆ€μ μœΌλ‘œ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜κ°’μ„ κ°€μ§‘λ‹ˆλ‹€. 이 값은 1970λ…„ 1μ›” 1일 00:00:00(UTC)을 기점으둜 Date 객체가 λ‚˜νƒ€λ‚΄λŠ” λ‚ μ§œμ™€ μ‹œκ°„κΉŒμ§€μ˜ λ°€λ¦¬μ΄ˆλ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 1970λ…„ 1μ›” 1일 0μ‹œλ₯Ό λ‚˜νƒ€λ‚΄λŠ” Data κ°μ²΄λŠ” λ‚΄λΆ€μ μœΌλ‘œ..

[JavaScript] μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ λ°°μ—΄ λ©”μ„œλ“œμ™€ κ³ μ°¨ ν•¨μˆ˜

μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” 배열을 λ‹€λ£° λ•Œ μœ μš©ν•œ λ‹€μ–‘ν•œ 빌트인 λ©”μ„œλ“œλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. 배열은 μ‚¬μš© λΉˆλ„κ°€ 높은 μžλ£Œκ΅¬μ‘°μ΄λ―€λ‘œ λ°°μ—΄ λ©”μ„œλ“œμ˜ μ‚¬μš©λ²•μ„ 잘 μ•Œμ•„λ‘˜ ν•„μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ λ°°μ—΄ λ©”μ„œλ“œ μ€‘μ—μ„œ μ‚¬μš© λΉˆλ„κ°€ 높은 λ©”μ„œλ“œμ™€ μΆ”κ°€λ‘œ λ°°μ—΄ κ³ μ°¨ ν•¨μˆ˜μ— λŒ€ν•΄μ„œ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. *μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ 배열에 λŒ€ν•œ μ„€λͺ…은 μ•„λž˜μ˜ ν¬μŠ€νŒ…μ„ μ°Έκ³ ν•˜μ„Έμš”. https://j-su2.tistory.com/79 [JavaScript] λ°°μ—΄ λ°°μ—΄μ΄λž€? λ°°μ—΄(array)λŠ” μ—¬λŸ¬κ°œμ˜ 값을 순차적으둜 λ‚˜μ—΄ν•œ μžλ£Œκ΅¬μ‘°μž…λ‹ˆλ‹€. μš”μ†Œ(element) : 배열이 가지고 μžˆλŠ” κ°’ 인덱슀(index) : λ°°μ—΄μ˜ μš”μ†Œμ—μ„œ μžμ‹ μ˜ μœ„μΉ˜λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 0 μ΄μƒμ˜ μ •μˆ˜λ‘œ 배열에 j-su2.tistory.com λ°°μ—΄ λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•  λ•Œ μ£Όμ˜ν•  점 Array μƒμ„±μž ..

[JavaScript] ES6 ν•¨μˆ˜μ˜ μΆ”κ°€ κΈ°λŠ₯

ν•¨μˆ˜μ˜ ꡬ뢄 ES6 μ΄μ „μ˜ ν•¨μˆ˜μ˜ λͺ¨λ“  ν•¨μˆ˜λŠ” μ‚¬μš© λͺ©μ μ— 따라 λͺ…ν™•ν•œ ꡬ뢄이 μ—†μ–΄ 호좜 방식에 νŠΉλ³„ν•œ μ œμ•½ 없이 λ‹€μ–‘ν•œ ν˜•νƒœλ‘œ 호좜이 κ°€λŠ₯ν–ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, μƒμ„±μž ν•¨μˆ˜κ°€ μ•„λ‹Œ ν•¨μˆ˜κ°€ λΆˆν•„μš”ν•œ ν”„λ‘œν† νƒ€μž… 객체λ₯Ό μƒμ„±ν•˜κΈ° λ•Œλ¬Έμ— ν˜Όλž€μŠ€λŸ¬μš°λ©° μ‹€μˆ˜λ₯Ό μœ λ°œν•  κ°€λŠ₯성이 있고 μ„±λŠ₯에도 쒋지 μ•Šμ•˜μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ ES6μ—μ„œλŠ” ν•¨μˆ˜λ₯Ό μ‚¬μš© λͺ©μ μ— 따라 μ„Έ 가지 μ’…λ₯˜λ‘œ λͺ…ν™•νžˆ κ΅¬λΆ„ν–ˆμŠ΅λ‹ˆλ‹€. ES ν•¨μˆ˜μ˜ ꡬ뢄 constructor prototype super arguments 일반 ν•¨μˆ˜(Normal) O O X O λ©”μ„œλ“œ(Method) X X O O ν™”μ‚΄ν‘œ ν•¨μˆ˜(Arrow) X X X X λ©”μ„œλ“œ ES6 μ‚¬μ–‘μ—μ„œ λ©”μ„œλ“œλŠ” λ©”μ„œλ“œ μΆ•μ•½ ν‘œν˜„μœΌλ‘œ μ •μ˜λœ ν•¨μˆ˜λ§Œμ„ μ˜λ―Έν•©λ‹ˆλ‹€. const obj = { x: 1, // fooλŠ” λ©”..

[JavaScript] ν΄λ‘œμ €

ν΄λ‘œμ €(closure)λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ 고유의 κ°œλ…μ΄ μ•„λ‹Œ ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œ μ‚¬μš©λ˜λŠ” μ€‘μš”ν•œ νŠΉμ„±μœΌλ‘œ MDNμ—μ„œλŠ” ν΄λ‘œμ €λ₯Ό "ν•¨μˆ˜μ™€ κ·Έ ν•¨μˆ˜κ°€ μ„ μ–Έλœ λ ‰μ‹œμ»¬ ν™˜κ²½κ³Όμ˜ μ‘°ν•©"이라고 μ •μ˜ν•©λ‹ˆλ‹€. λ”°λΌμ„œ ν΄λ‘œμ €λ₯Ό μ΄ν•΄ν•˜κΈ° μœ„ν•΄μ„  ν•¨μˆ˜κ°€ μ„ μ–Έλœ λ ‰μ‹œμ»¬ ν™˜κ²½μ— λŒ€ν•΄ μ•Œμ•„μ•Όν•©λ‹ˆλ‹€. λ ‰μ‹œμ»¬ μŠ€μ½”ν”„ μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 ν•¨μˆ˜λ₯Ό μ–΄λ””μ„œ μ •μ˜ν–ˆλŠ”μ§€μ— 따라 μƒμœ„ μŠ€μ½”ν”„μΈ λ ‰μ‹œμ»¬ μŠ€μ½”ν”„(정적 μŠ€μ½”ν”„)λ₯Ό κ²°μ •ν•©λ‹ˆλ‹€. const x = 1; function foo () { const x = 10; bar(); } function bar () { console.log(X); } foo(); // 1 bar(); // 1 μœ„ 예제의 foo ν•¨μˆ˜μ™€ bar ν•¨μˆ˜λŠ” λͺ¨λ“œ μ „μ—­μ—μ„œ μ •μ˜λœ μ „μ—­ ν•¨μˆ˜λ‘œ foo ν•¨μˆ˜μ™€ bar ν•¨μˆ˜ λͺ¨λ‘ ..

[JavaScript] μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ

μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ(execution context)λž€? μ‹€ν–‰ μ»¨ν…μŠ€νŠΈλŠ” μ†ŒμŠ€μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λŠ” 데 ν•„μš”ν•œ ν™˜κ²½μ„ μ œκ³΅ν•˜κ³  μ½”λ“œμ˜ μ‹€ν–‰ κ²°κ³Όλ₯Ό μ‹€μ œλ‘œ κ΄€λ¦¬ν•˜λŠ” μ˜μ—­μœΌλ‘œ μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ λ™μž‘ 원리λ₯Ό λ‹΄κ³  μžˆλŠ” 핡심 κ°œλ…μž…λ‹ˆλ‹€. μ†ŒμŠ€μ½”λ“œμ˜ νƒ€μž… ECMAScript 사양은 μ†ŒμŠ€μ½”λ“œλ₯Ό 4가지 νƒ€μž…μœΌλ‘œ κ΅¬λΆ„ν•˜λŠ”λ° νƒ€μž…μ— 따라 μ‹€ν–‰ μ»¨ν…μŠ€νŠΈλ₯Ό μƒμ„±ν•˜λŠ” κ³Όμ •κ³Ό 관리 λ‚΄μš©μ΄ λ‹€λ¦…λ‹ˆλ‹€. μ†ŒμŠ€μ½”λ“œ νƒ€μž… μ„€λͺ… μ „μ—­ μ½”λ“œ - 전역에 μ‘΄μž¬ν•˜λŠ” μ†ŒμŠ€μ½”λ“œ - μ΅œμƒμœ„ μŠ€μ½”ν”„μΈ μ „μ—­ μŠ€μ½”ν”„ 생성 - μ „μ—­ μ½”λ“œκ°€ ν‰κ°€λ˜λ©΄ μ „μ—­ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈκ°€ 생성 ν•¨μˆ˜ μ½”λ“œ - ν•¨μˆ˜ 내뢀에 μ‘΄μž¬ν•˜λŠ” μ†ŒμŠ€μ½”λ“œ - 지역 μŠ€μ½”ν”„λ₯Ό 생성 - ν•¨μˆ˜ μ½”λ“œκ°€ ν‰κ°€λ˜λ©΄ ν•¨μˆ˜ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈκ°€ 생성 eval μ½”λ“œ - 빌트인 μ „μ—­ ν•¨μˆ˜μΈ eval ν•¨μˆ˜μ— 인자둜 μ „λ‹¬λ˜μ–΄ μ‹€ν–‰λ˜λŠ” μ†Œ..