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

WINK-(Web & App)/HTML & CSS & JS μŠ€ν„°λ””

[2023 μ‹ μž…λΆ€μ› 심화 μŠ€ν„°λ””] ν™©ν˜„μ§„ #1μ£Όμ°¨ - κΈ°μ΄ˆλ¬Έλ²• part.1

λ°˜μ‘ν˜•

πŸ“Œ λ³€μˆ˜μ™€ μƒμˆ˜

- λ³€μˆ˜: λ³€κ²½ν•  수 μžˆλŠ” κ°’

let λ³€μˆ˜λͺ…;  // λ³€μˆ˜ μ„ μ–Έ
λ³€μˆ˜λͺ… = 'ν™©ν˜„μ§„';  // λ³€μˆ˜ κ°’ μ΄ˆκΈ°ν™”
let λ³€μˆ˜λͺ… = 'ν™©ν˜„μ§„';  // λ³€μˆ˜ μ„ μ–Έκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™”

β€» λ³€μˆ˜ μ΄ˆκΈ°ν™”μ‹œ μ£Όμ˜ν•  점
: λ³€μˆ˜λ₯Ό λ¨Όμ € μ„ μ–Έν•œ ν›„, μ΄ˆκΈ°ν™”λ₯Ό λ”°λ‘œ ν•  λ•Œ let을 ν•œ 번 더 μ“΄λ‹€λ©΄ 값을 λ³€κ²½ν•˜λŠ” 것이 μ•„λ‹ˆλΌ λ³€μˆ˜λ₯Ό μž¬ν• λ‹Ήν•˜λŠ” 것이기 λ•Œλ¬Έμ— μ—λŸ¬κ°€ λ°œμƒν•œλ‹€.

 

- μƒμˆ˜: λ³€κ²½ν•  수 μ—†λŠ” κ°’

const μƒμˆ˜λͺ… = κ°’;  // μƒμˆ˜λŠ” μ„ μ–Έν•  λ•Œ μ΄ˆκΈ°ν™”λ„ 같이 ν•΄μ£Όμ–΄μ•Ό ν•œλ‹€.
μƒμˆ˜λͺ… = 123123;  // 이러면 νƒ€μž…μ—λŸ¬ λ°œμƒ(μƒμˆ˜λŠ” λ³€κ²½ν•  수 μ—†κΈ° λ•Œλ¬Έ)

 

- 이름 κ·œμΉ™

  1. λ³€μˆ˜λ‚˜ μƒμˆ˜ μ΄λ¦„μ˜ 첫 번째 κΈ€μžλŠ” μ˜μ–΄, $, _만 κ°€λŠ₯
    (숫자둜 μ‹œμž‘ν•˜λŠ” λ³€μˆ˜λͺ…은 ν—ˆμš©λ˜μ§€ μ•ŠλŠ”λ‹€.)
  2. 첫 번째 κΈ€μž μ΄μ™Έμ—λŠ” μˆ«μžλ„ μ‚¬μš© κ°€λŠ₯
    ex) _123, $123
  3. μ˜μ–΄ μ†Œλ¬Έμžμ™€ λŒ€λ¬ΈμžλŠ” ꡬ별
    ex) abc !== ABC
  4. let, const와 같은 μžλ°”μŠ€ν¬λ¦½νŠΈ μ˜ˆμ•½μ–΄λŠ” μ‚¬μš© λΆˆκ°€
  5. 이름에 곡백은 ν—ˆμš©λ˜μ§€ μ•ŠμŒ
    - Camel Case 방식 → whoAmI
    - Snake Case 방식 → who_am_i
μš°μ„  const둜 λ¨Όμ € μ„ μ–Έν•œ ν›„ κ°’ 변경이 ν•„μš”ν•œ 경우 let으둜 λ³€κ²½ν•œλ‹€β—

 

+) varμ΄λž€?

: let, constκ°€ μ—†λ˜ μ˜ˆμ „ jsμ—μ„œ μ‚¬μš©ν–ˆλ˜ μ˜ˆμ•½μ–΄

var abc = 123;
var abc = 345;  // var을 ν•œ 번 더 μ‚¬μš©ν•΄λ„ 였λ₯˜κ°€ λ‚˜μ§€ μ•ŠλŠ”λ‹€.

 

 

πŸ“Œ μ›μ‹œ 데이터 νƒ€μž…

- μ›μ‹œ 데이터 νƒ€μž…: 객체가 μ•„λ‹ˆλ©΄μ„œ λ©”μ„œλ“œλ„ 가지지 μ•ŠλŠ” 데이터

   (string, number, bigint, boolean, underfined, null, symbol)

 

  • number
    : μ •μˆ˜μ™€ λΆ€λ™μ†Œμˆ˜μ  숫자λ₯Ό λ‚˜νƒ€λ‚΄λŠ” νƒ€μž…
  • bigint
    : number 데이터 νƒ€μž… λ²”μœ„λ₯Ό λ„˜μ–΄κ°€λŠ” μ•„μ£Ό μž‘κ±°λ‚˜ 큰 숫자
const number = 123n;  // number νƒ€μž…μ²˜λŸΌ μž‘μ„±ν•˜λ˜, 숫자 뒀에 n을 뢙이면 λœλ‹€.

 

  • string
    : ' ', " ", ` `(λ°±ν‹±)둜 감싸진 λ¬Έμžλ‚˜ 숫자
const age = 20;
const job = ‘개발자’;
const msg = ‘μ €λŠ” ‘ + job + ‘이고, ‘ + age + ‘μ‚΄ μž…λ‹ˆλ‹€.’;  // 백틱을 μ‚¬μš©ν•˜μ§€ μ•Šμ€ μ½”λ“œ
const msg2 = `μ €λŠ” ${job}이고, ${age}μ‚΄ μž…λ‹ˆλ‹€.`;  // 백틱을 μ‚¬μš©ν•œ μ½”λ“œ
// λ°±ν‹±(` `)을 μ‚¬μš©ν•˜λ©΄ 가독성이 쒋아지고 띄어쓰기 μ‹€μˆ˜λ„ 쀄일 수 μžˆλ‹€.

 

  • boolean
    : μ°Έ λ˜λŠ” 거짓을 κ°€μ§€λŠ” λ…Όλ¦¬ν˜• νƒ€μž…
  • null
    : 값이 μ•„μ˜ˆ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” 것
  • undefined
    : 값이 아직 μ§€μ •λ˜μ§€ μ•Šμ€ 것 (ex. λ³€μˆ˜λ₯Ό λ§Œλ“€κ³  아직 μ΄ˆκΈ°ν™” ν•˜μ§€ μ•Šμ•˜μ„ λ•Œ) 

 

 

πŸ“Œ μ°Έμ‘° 데이터 νƒ€μž…

- μ›μ‹œμ™€ 참쑰의 차이

μ›μ‹œ μ°Έμ‘°
λ©”λͺ¨λ¦¬μ— ν•΄λ‹Ή λ³€μˆ˜λ₯Ό μœ„ν•œ 곡간이 λ§ˆλ ¨λœλ‹€.
그리고 κ·Έ μ•ˆμ— 값이 μ €μž₯λœλ‹€.
μ—¬λŸ¬ 개의 값을 μ €μž₯ν•˜κΈ° λ•Œλ¬Έμ— κ³ μ •λœ λ©”λͺ¨λ¦¬ 값을 ν• λ‹Ή 받을 수 μ—†λ‹€.
νž™μ΄λΌλŠ” λ³„λ„μ˜ 곡간에 값을 μ €μž₯ν•˜κ³ , λ³€μˆ˜μ—λŠ” κ·Έ νž™μ„ κ°€λ¦¬ν‚€λŠ” λ©”λͺ¨λ¦¬ μ£Όμ†Œκ°’λ§Œ μ €μž₯ν•œλ‹€.

 

  • λ°°μ—΄: λ°μ΄ν„°λ“€μ˜ μ§‘ν•©μœΌλ‘œ ꡬ성 (λŒ€κ΄„ν˜Έ μ‚¬μš©)
const arr = [1, 2, 3];  // 숫자 λ°°μ—΄ 생성
console.log(arr[0])  // λ°°μ—΄μ˜ 0번째 인덱슀 좜λ ₯ (μΈλ±μŠ€λŠ” 0λΆ€ν„° μ‹œμž‘)
const arr = [1, 2, 3, [4, 5]]  // λ°°μ—΄μ•ˆμ— λ°°μ—΄ 쀑첩 κ°€λŠ₯
const arr = [1, 2, 3, {name: ‘ν™©ν˜„μ§„’}] // λ°°μ—΄κ³Ό 객체 쀑첩 κ°€λŠ₯

 

  • 객체: property( = key + value )둜 ꡬ성 (μ€‘κ΄„ν˜Έ μ‚¬μš©)
    - property μ‚¬μš©λ²•
      1) 점 ν‘œκΈ°λ²• -> 일반적인 μƒν™©μ—μ„œ μ‚¬μš©
      2) λŒ€κ΄„ν˜Έ ν‘œκΈ°λ²•
const obj{
	name: 'ν™©ν˜„μ§„', 
	job: '개발자'  // key = job, value = '개발자'
}
console.log(obj.name);  // 점 ν‘œκΈ°λ²•
console.log(obj['name'])  // λŒ€κ΄„ν˜Έ ν‘œκΈ°λ²•

 

 

 

πŸ“Œ μ—°μ‚°μž

μ‚°μˆ  μ—°μ‚°μž +, -, *, /, % (λ‚˜λ¨Έμ§€ μ—°μ‚°μž), ** (μ§€μˆ˜ μ—°μ‚°μž)
증감 μ—°μ‚°μž ++ (1 증가), -- (1 κ°μ†Œ)
비ꡐ μ—°μ‚°μž <, >, <=, >=, ==, ===, !==

a =123, b = '123' 일 λ•Œ,
a==b λŠ” true (좔상비ꡐ)
a===b λŠ” false (엄격비ꡐ, νƒ€μž…κΉŒμ§€ 비ꡐ) 
논리 μ—°μ‚°μž && (and), || (or), ! (not)
μ‚Όν•­ μ—°μ‚°μž 쑰건 ? 참일 λ•Œ 싀행될 λΆ€λΆ„ : 거짓일 λ•Œ 싀행될 λΆ€λΆ„
널리쉬(nullish) μ—°μ‚°μž ??
λΉ„νŠΈ μ—°μ‚°μž &, |, ~, ^, <<, >>
λŒ€μž… μ—°μ‚°μž =, +=, -=, *=, /=, %=, **= (볡합 λŒ€μž… μ—°μ‚°μž)

+) μ „κ°œ ꡬ문

const numbers = [1, 2, 3];
console.log(...numbers); // ...을 찍으면 μ „κ°œ μ—°μ‚°μž
// -> 1 2 3 (λ°°μ—΄μ˜ μ›μ†Œλ₯Ό νŽΌμ³μ„œ 보여쀀닀)
console.log(numbers);
// -> [1, 2, 3] λ°°μ—΄λ‘œ 좜λ ₯이 λœλ‹€. 

const numbers2 = [4, 5, 6];

const newNumbers = [...numbers, ...numbers2];  // 두 배열을 ν•©μΉ  λ•Œ μ‚¬μš©
cosole.log(newNumbers);
// -> [1, 2, 3, 4, 5, 6]
λ°˜μ‘ν˜•