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

FA/JavaScript

js 기초 정리

//μ£Όμ„μ²˜λ¦¬

 

πŸŸ‘ν•¨μˆ˜

ν•¨μˆ˜ 선언식:  function do_something() { ... }

ν•¨μˆ˜ ν‘œν˜„μ‹: let do_something = function [ν•¨μˆ˜ 이름]() { ... } //ν•¨μˆ˜ 이름은 μƒλž΅κ°€λŠ₯

ν™”μ‚΄ν‘œ ν•¨μˆ˜: let do_something = () => { ... } //ν•¨μˆ˜ ν‘œν˜„μ‹μ˜ λ‹¨μΆ•ν˜•

 

πŸŸ‘λ³€μˆ˜

1. λ³€μˆ˜λŠ” λ¬Έμžμ™€ 숫자, $와_만 μ‚¬μš©

2. μ²«κΈ€μžλŠ” μˆ«μžκ°€ 될수 μ—†μŒ

3. μ˜ˆμ•…μ–΄λŠ” μ‚¬μš©ν•  수 μ—†μŒ

4. 가급적 μƒμˆ˜λŠ” λŒ€λ¬Έμžλ‘œ μ•Œλ €μ€„κ²ƒ 

const μ ˆλŒ€λ‘œ λ°”λ€Œμ§€ μ•ŠλŠ” μƒμˆ˜ μˆ˜μ •x 

 *일단 const둜 ν•˜κ³  변동 μžˆμ„ λ§Œν•œ 것듀을 letμœΌλ‘œν•˜κΈ° (λ³΄μ•ˆμ„±)

ex) const PI =3.14; λŒ€λ¬Έμžλ‘œ μ„ μ–Έν•˜λŠ”κ²Œ μ’‹μŒ 

λ³€ν•  수 μžˆλŠ” 값은 let으둜 μ„ μ–Έ

5. λ³€μˆ˜λͺ…은 읽기 쉽고 이해할 수 있게 μž‘μ„±

var const let
ν•œλ²ˆ μ„ μ–Έλœ λ³€μˆ˜λ₯Ό λ‹€μ‹œ μ„ μ–Έν•  수 있음
μ„ μ–Έν•˜κΈ° 전에 μ‚¬μš©ν•  수 있음
1. μ„ μ–Έ 및 μ΄ˆκΈ°ν™” 단계
2. ν• λ‹Ή 단계
function scope
1.μ„ μ–Έ + μ΄ˆκΈ°ν™” + ν• λ‹Ή
*μ΄ˆκΈ°ν™”
undefinedλ₯Ό ν• λ‹Ή
ν•΄μ£ΌλŠ” 단계

Block scope
Immutable
1. μ„ μ–Έ
2.μ΄ˆκΈ°ν™”
3.ν• λ‹Ή

Block scope
Mutable
  μž¬μ„ μ–Έ μž¬ν• λ‹Ή
var O O
let X O
const X X

*var hoisting: 어디에 μ„ μ–Έν–ˆλƒμ— 상관없이 항상 제일 μœ„λ‘œ λŒμ–΄ μ˜¬λ €μ£ΌλŠ” 것

* {μ€‘κ΄„ν˜Έ}: 블둝

 

 

πŸŸ‘μžλ£Œν˜•

1.λ¬Έμžν˜•

2.μˆ«μžν˜• 

NaN μˆ«μžκ°€ μ•„λ‹˜

3.Boolean - true μ°Έ , false κ±°μ§“

4. nullκ³Ό undefined

5.κ°μ²΄ν˜• object

6.μ‹¬λ³Όν˜•

7.typeof μ—°μ‚°μž <λ‹€λ₯Έμ‚¬λžŒμ΄ λ§Œλ“ κ±° λ³Όλ•Œ μ‚¬μš©>

 

πŸŸ‘λŒ€ν™”μƒμž - 단점: 슀크립트 μΌμ‹œ μ •μ§€ / μŠ€νƒ€μΌλ§x 

1.alert μ•Œλ €μ€Œ

2.prompt μž…λ ₯ λ°›μŒ (λ¬Έμžν˜•)

3.confirm 확인 λ°›μŒ - μ·¨μ†Œλ²„νŠΌμ΄λž‘ 같이 있음

 

πŸŸ‘μžλ™ ν˜•λ³€ν™˜ / λͺ…μ‹œμ  ν˜•λ³€ν™˜

*μ•žμ— λŒ€λ¬Έμžλ‘œ 할것/ κ°€λ‘œμ•ˆμ˜κ²ƒ λ°”κΏ”μ€Œ

String() λ¬Έμžν˜•μœΌλ‘œ λ³€ν™˜

Number() μˆ«μžν˜•μœΌλ‘œ λ³€ν™˜  / μˆ«μžκ°€μ•„λ‹μ‹œ NaN

Boolean() λΆˆλ¦°ν˜•μœΌλ‘œ λ³€ν™˜

* Number(null) // 0  , Number(undefined) // NaN

* false둜 λ³΄λŠ” 경우
-0, 0, Null, NaN, undefined, false, ''

*λΉˆλ¬Έμžμ—΄ '' false μ΄μ§€λ§Œ 빈 λ°°μ—΄, 빈 κ°μ²΄λŠ” true

> Boolean("")
false

> Boolean([])
true
> Boolean({})
true

 

πŸŸ‘μ—°μ‚°μž

= 값을 ν• λ‹Ή

κΈ°λ³Έμ—°μ‚°μž :  + λ”ν•˜κΈ°, - λΉΌκΈ° , *κ³±ν•˜κΈ°, / λ‚˜λˆ„κΈ°, %λ‚˜λ¨Έμ§€, **κ±°λ“­μ œκ³±

μš°μ„ μˆœμœ„ */  >  +-

μ¦κ°€μ—°μ‚°μž : ++ λ‘λ²ˆ   ++num; (μ•žμ— μ¨μ•ΌλŒ) / num++; 뒀에 적을 μ‹œ μ¦κ°€μ‹œν‚€κΈ° μ „μ˜ κ°’

κ°μ†Œμ—°μ‚°μž: -- λ‘λ²ˆ

μΌμΉ˜μ—°μ‚°μž ===

λ”ν•˜κΈ°ν• λ‹Ήμ—°μ‚°μž += μ—°μ‚°μžμ˜ 였λ₯Έμͺ½μ—μ„œ 값을 가져와 μ™Όμͺ½μ˜ λ³€μˆ˜μ— μΆ”κ°€

 

λΉ„κ΅μ—°μ‚°μž < 크닀 , >μž‘λ‹€, <=ν¬κ±°λ‚˜ κ°™λ‹€, >=μž‘κ±°λ‚˜ κ°™λ‹€, ==κ°™λ‹€ , != λ‹€λ₯΄λ‹€(λΈ”λ¦°ν˜•)

== μ™Όμͺ½ ν”Όμ—°μ‚°μžμ™€ 였λ₯Έμͺ½ ν”Όμ—°μ‚°μžμ˜ 값이 κ°™μœΌλ©΄ 참을 λ°˜ν™˜ν•¨.
=== μ™Όμͺ½ ν”Όμ—°μ‚°μžμ™€ 였λ₯Έμͺ½ ν”Όμ—°μ‚°μžμ˜ 값이 κ°™κ³ , 같은 νƒ€μž…μ΄λ©΄ 참을 λ°˜ν™˜ν•¨.
!= μ™Όμͺ½ ν”Όμ—°μ‚°μžμ™€ 였λ₯Έμͺ½ ν”Όμ—°μ‚°μžμ˜ 값이 κ°™μ§€ μ•ŠμœΌλ©΄ 참을 λ°˜ν™˜ν•¨.
!== μ™Όμͺ½ ν”Όμ—°μ‚°μžμ™€ 였λ₯Έμͺ½ ν”Όμ—°μ‚°μžμ˜ 값이 κ°™μ§€ μ•Šκ±°λ‚˜, νƒ€μž…μ΄ λ‹€λ₯΄λ©΄ 참을 λ°˜ν™˜ν•¨.
> μ™Όμͺ½ ν”Όμ—°μ‚°μžμ˜ 값이 였λ₯Έμͺ½ ν”Όμ—°μ‚°μžμ˜ 값보닀 크면 참을 λ°˜ν™˜ν•¨.
>= μ™Όμͺ½ ν”Όμ—°μ‚°μžμ˜ 값이 였λ₯Έμͺ½ ν”Όμ—°μ‚°μžμ˜ 값보닀 ν¬κ±°λ‚˜ κ°™μœΌλ©΄ 참을 λ°˜ν™˜ν•¨.
< μ™Όμͺ½ ν”Όμ—°μ‚°μžμ˜ 값이 였λ₯Έμͺ½ ν”Όμ—°μ‚°μžμ˜ 값보닀 μž‘μœΌλ©΄ 참을 λ°˜ν™˜ν•¨.
<= μ™Όμͺ½ ν”Όμ—°μ‚°μžμ˜ 값이 였λ₯Έμͺ½ ν”Όμ—°μ‚°μžμ˜ 값보닀 μž‘κ±°λ‚˜ κ°™μœΌλ©΄ 참을 λ°˜ν™˜ν•¨.
*κ±°λ“­μ œκ³±
const num = 2**3;
console.log(num); //8

 

 

πŸŸ‘λ…Όλ¦¬ μ—°μ‚°μž  

|| (or) - μ—¬λŸ¬κ°œ 쀑 ν•˜λ‚˜λΌλ„ trueλ©΄ true 즉 λͺ¨λ“  값이 false μΌλ•Œλ§Œ falseλ₯Ό λ°˜ν™˜

&& (and) - λͺ¨λ“  값이 trueλ©΄true 즉 ν•˜λ‚˜λΌλ„ false λ©΄ falseλ₯Ό λ°˜ν™˜

! (not) - trueλ©΄false /  false λ©΄true λ°˜λŒ€λ‘œ λ°”κΏˆ

 

 

🟑좜처 및 참고자료

μ½”λ”©μ•™λ§ˆ https://www.youtube.com/watch?v=KF6t61yuPCY 

μ„œμ  / λͺ¨λ˜ 슀크립트 Deep Dive - 이웅λͺ¨ μ§€μŒ