πŸ““ JavaScript 기초 - TIL 2

sebinnnnnΒ·2022λ…„ 12μ›” 28일
0

JavaScript 기초

λͺ©λ‘ 보기
2/8
post-thumbnail
  1. 반볡문
  2. 반볡문과 쑰건문 ν™œμš©
  3. ν•¨μˆ˜
  4. ν΄λž˜μŠ€μ™€ 객체
  5. λ°°μ—΄

1️⃣ 반볡문

β†’ λ°˜λ³΅λ¬Έμ€ νŠΉμ • μ½”λ“œλ₯Ό λ°˜λ³΅ν•΄μ„œ μ‹€ν–‰ν•  수 있게 ν•΄μ£ΌλŠ” 역할을 ν•œλ‹€. 즉, λ°˜λ³΅λ¬Έμ„ ν™œμš©ν•˜λ©΄ μ‰½κ²Œ νŠΉμ • μ½”λ“œλ₯Ό λ°˜λ³΅ν•΄μ„œ μ‹€ν–‰ν•  수 있게 ν•  수 μžˆλ‹€λŠ” 것!
μ΄λ•Œ, 쑰건을 μ„€μ •ν•΄μ„œ μ›ν•˜λŠ” 만큼 쑰건에 따라 λ°˜λ³΅ν•  수 μžˆλ‹€.

1) while문
while (쑰건) { 쑰건을 λ§Œμ‘±ν•  λ•Œ μ‹€ν–‰ν•  μ½”λ“œ }

let temperature = 20
while (temperature < 25) {
	console.log(`${temperature}도 정도면 μ λ‹Ήν•œ μ˜¨λ„μž…λ‹ˆλ‹€.`)
	temperature++ // μ¦κ°μ—°μ‚°μžλ₯Ό ν™œμš©ν•΄μ„œ μ˜¨λ„λ₯Ό λ³€ν™”μ‹œν‚΅λ‹ˆλ‹€.
}
// 좜λ ₯
// 20도 정도면 μ λ‹Ήν•œ μ˜¨λ„μž…λ‹ˆλ‹€.
// 21도 정도면 μ λ‹Ήν•œ μ˜¨λ„μž…λ‹ˆλ‹€.
// 22도 정도면 μ λ‹Ήν•œ μ˜¨λ„μž…λ‹ˆλ‹€.
// 23도 정도면 μ λ‹Ήν•œ μ˜¨λ„μž…λ‹ˆλ‹€.
// 24도 정도면 μ λ‹Ήν•œ μ˜¨λ„μž…λ‹ˆλ‹€.
  • μ£Όμ˜ν•  점은 쑰건에 포함이 λ˜λŠ” λ³€μˆ˜μ˜ 값에 λ³€ν™”λ₯Ό μ€˜μ„œ 쑰건에 μ˜ν•΄μ„œ 반볡문이 끝날 수 μžˆλ„λ‘ ν•΄μ•Ό ν•œλ‹€λŠ” 점!
    λ§Œμ•½ λ³€μˆ˜ 값에 μ•„λ¬΄λŸ° λ³€ν™”λ₯Ό 주지 μ•ŠλŠ”λ‹€λ©΄ λ˜‘κ°™μ€ 싀행이 κ³„μ†ν•΄μ„œ λ°˜λ³΅λœλ‹€.
    즉, 반볡문의 쑰건이 κ³„μ†ν•΄μ„œ true λ₯Ό λ¦¬ν„΄ν•œλ‹€λ©΄ λ¬΄ν•œλ£¨ν”„μ— λΉ μ Έμ„œ ν”„λ‘œκ·Έλž¨μ΄ λλ‚˜μ§€ μ•ŠλŠ”λ‹€λŠ” 것! κ·Έλ ‡κΈ° λ•Œλ¬Έμ— false에 ν•΄λ‹Ήν•  수 μžˆλ„λ‘ 반볡문이 끝낼 수 μžˆλŠ” λ³€ν™”λ₯Ό μ£Όμ–΄μ•Ό ν•œλ‹€.
    κ°•μ œ μ’…λ£Œ : ctrl + c(λ§₯도 λ˜‘κ°™μ΄)

2) for문
for (begin; condition; step) { 쑰건을 λ§Œμ‘±ν•  λ•Œ μ‹€ν–‰ν•  μ½”λ“œ }
-> β†’ for문은 while문보닀 λͺ…μ‹œμ μœΌλ‘œ 반볡문의 쑰건을 ν‘œν˜„ν•  수 μžˆλ‹€.

for (let temperature = 20; temperature < 25; temperature++) {
	console.log(`${temperature}도 정도면 μ λ‹Ήν•œ μ˜¨λ„μž…λ‹ˆλ‹€.`)
}
// 좜λ ₯
// 20도 정도면 μ λ‹Ήν•œ μ˜¨λ„μž…λ‹ˆλ‹€.
// 21도 정도면 μ λ‹Ήν•œ μ˜¨λ„μž…λ‹ˆλ‹€.
// 22도 정도면 μ λ‹Ήν•œ μ˜¨λ„μž…λ‹ˆλ‹€.
// 23도 정도면 μ λ‹Ήν•œ μ˜¨λ„μž…λ‹ˆλ‹€.
// 24도 정도면 μ λ‹Ήν•œ μ˜¨λ„μž…λ‹ˆλ‹€.

for문이 μ‹€ν–‰λ˜λŠ” μˆœμ„œ λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜κ³  값을 ν• λ‹Ήν•œλ‹€. β†’ (2) λ³€μˆ˜μ˜ 값이 25보닀 μž‘μ€μ§€ μ—°μ‚°ν•˜κ³  결과값이 true라면 계속 μ‹€ν–‰, fasle이라면 λ°˜λ³΅λ¬Έμ„ μ’…λ£Œν•œλ‹€. β†’ (3) true라면 μ€‘κ΄„ν˜Έ μ•ˆμ˜ μ½”λ“œκ°€ μ‹€ν–‰λœλ‹€. β†’ (4) λ³€μˆ˜ 값에 1을 λ”ν•΄μ„œ μž¬ν• λ‹Ήμ„ ν•˜κ³  λ‹€μ‹œ 2λ²ˆλΆ€ν„° 과정을 λ°˜λ³΅ν•œλ‹€.

2️⃣ 반볡문과 쑰건문의 ν™œμš©

β†’ 반볡문과 쑰건문은 μ½”λ”©μ˜ 핡심이닀!
μž…λ ₯된 데이터에 λŒ€ν•΄ 쑰건문을 ν™œμš©ν•΄ μˆ˜λ§Žμ€ 쑰건으둜 λΆ„κΈ°ν•˜κ³  λ°˜λ³΅λ¬Έμ„ ν™œμš©ν•΄ λ°˜λ³΅ν•΄μ„œ μ²˜λ¦¬ν•˜λŠ” 게 ν”„λ‘œκ·Έλž¨μ΄ 주둜 ν•˜λŠ” 일이기 λ•Œλ¬Έβ€¦!

//forλ¬Έ ν™œμš©
for (let number = 1; number <= 10; number++) {
	// 3으둜 λ‚˜λˆ„μ–΄ λ–¨μ–΄μ§€λŠ” 숫자 = 3으둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€κ°€ 0인 숫자
	if (number % 3 === 0) {
		console.log(`${number}λŠ” 3으둜 λ‚˜λˆ μ„œ λ–¨μ–΄μ§€λŠ” μˆ«μžμž…λ‹ˆλ‹€.`)
	}
}

[ μ—°μŠ΅ ]

for (let number = 1; number <= 20; number++) {
	// 짝수 = 2둜 λ‚˜λˆ„μ—ˆμ„ λ•Œ λ‚˜λ¨Έμ§€κ°€ 0 + 그렇지 μ•Šμ€ μˆ«μžλŠ” λͺ¨λ‘ ν™€μˆ˜
	if (number % 2 === 0) {
		console.log(`숫자 ${number}λŠ” μ§μˆ˜μž…λ‹ˆλ‹€.`)
	} else {
		console.log(`숫자 ${number}λŠ” ν™€μˆ˜μž…λ‹ˆλ‹€.`)
	}
}

3️⃣ ν•¨μˆ˜

β†’ ν•¨μˆ˜λž€ νŠΉμ • μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” μ½”λ“œμ˜ 집합이닀.
λ™μΌν•œ μž‘μ—…μ„ ν•˜λŠ” μ½”λ“œμ— λŒ€ν•΄ ν•¨μˆ˜λ‘œ μ •μ˜ν•˜κ³  λ³€μˆ˜ κ°’μ—λ§Œ λ³€ν™”λ₯Ό μ£Όμ–΄ μ†μ‰½κ²Œ μ‚¬μš©ν•  수 있게 ν•΄μ£ΌλŠ” 것!
( λ™μΌν•œ μž‘μ—…μ— λŒ€ν•΄μ„œ κΈ΄ μ½”λ“œλ₯Ό 계속 μž‘μ„±ν•˜λŠ” 것은 νš¨μœ¨μ μ΄μ§€ μ•ŠκΈ° λ•Œλ¬Έμ—β€¦! )

function ν•¨μˆ˜λͺ…(λ§€κ°œλ³€μˆ˜λ“€...) {
이 ν•¨μˆ˜μ—μ„œ μ‹€ν–‰ν•  μ½”λ“œλ“€
return λ°˜ν™˜κ°’
}
β†’ λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜κ³  ν•΄λ‹Ή λ³€μˆ˜μ— 값을 ν• λ‹Ήν–ˆλ˜ κ²ƒμ²˜λŸΌ, ν•¨μˆ˜λ„ 선언을 ν•˜κ³  ν•΄λ‹Ή ν•¨μˆ˜κ°€ μ‹€ν–‰ν•  μ½”λ“œμ˜ 집합을 λ§Œλ“€μ–΄μ„œ μ €μž₯ν•΄ μ€€λ‹€.

// ν•¨μˆ˜ μ •μ˜
function calculateAvg(price1, price2) {
    const sum = price1 + price2
    console.log(`두 μƒν’ˆμ˜ 총 합은 ${sum}원 μž…λ‹ˆλ‹€.`)
    const avg = sum / 2
    return avg
}
// ν•¨μˆ˜λŠ” λ§Œλ“  λ‹€μŒμ— ν˜ΈμΆœμ„ ν•΄μ•Όμ§€λ§Œ μž‘λ™ν•œλ‹€.

// μž‘μ—…1
const priceA = 20000
const priceB = 30000
const avgA = calculateAvg(priceA, priceB)
console.log(`A와 B의 평균은 ${avgA}μž…λ‹ˆλ‹€.`)

// μž‘μ—…2
const priceC = 12000
const priceD = 13000
const avgB = calculateAvg(priceC, priceD)
console.log(`C와 D의 평균은 ${avgB}μž…λ‹ˆλ‹€.`)

// μž‘μ—…1κ³Ό 2처럼 νŠΉμ • λ³€μˆ˜λ§Œ λ³€ν™”λ₯Ό μ£Όμ–΄ λ™μΌν•œ μ½”λ“œλ₯Ό μ†μ‰½κ²Œ 반볡적으둜 μ‚¬μš© κ°€λŠ₯ν•˜κ²Œ ν•œλ‹€!
  • λ§€κ°œλ³€μˆ˜λž€? : λ§€κ°œλ³€μˆ˜(parameter)λŠ” ν•¨μˆ˜μ˜ 바디에 μžˆλŠ” μ½”λ“œλ₯Ό μ‚¬μš©ν•  수 μžˆλŠ” μΌμ’…μ˜ λ³€μˆ˜μ΄κ³  ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  λ•Œ ()μ•ˆμœΌλ‘œ μ „λ‹¬λ°›κ²Œ λœλ‹€.
    ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•  λ•Œ ν•„μš”ν•œ μΌμ’…μ˜ inputκ³Ό κ°™λ‹€κ³  생각!
// ν•¨μˆ˜μ˜ μ„ μ–Έ
function calculateAvg(price1, price2) {
	const sum = price1 + price2 // λ§€κ°œλ³€μˆ˜μΈ price1, price2을 λ³€μˆ˜μ²˜λŸΌ ν™œμš©(input)!
	console.log(`두 μƒν’ˆμ˜ ν•©κ³„λŠ” ${sum}μž…λ‹ˆλ‹€.`)
	const avg = sum / 2
	return avg // 평균가격을 리턴 -> output
}

-> μ£Όμ˜ν•  점! = ν•¨μˆ˜λŠ” μ„ μ–Έλ§Œ ν•΄μ„œλŠ” μ•ˆ 되고 μ‹€μ œλ‘œ ν˜ΈμΆœμ„ ν•΄μ•Όμ§€λ§Œ μ‹€μ§ˆμ μΈ μ½”λ“œ μž‘λ™μ΄ λœλ‹€! 즉, ν•¨μˆ˜λŠ” μ„ μ–Έ

[ 호좜의 방법 ]
호좜 방법1 const λ³€μˆ˜λͺ… = μ„ μ–Έν•œ ν•¨μˆ˜λͺ…(λ§€κ°œλ³€μˆ˜λ“€...)

const priceA = 2000
const priceB = 3000
// ν•¨μˆ˜μ˜ 호좜
const avg1 = calculateAvg(priceA, priceB)
console.log(`두 μƒν’ˆμ˜ 평균은 ${avg1}μž…λ‹ˆλ‹€.`)

const priceC = 4000
const priceD = 7000
// ν•¨μˆ˜μ˜ 호좜
const avg2 = calculateAvg(priceC, priceD)
console.log(`두 μƒν’ˆμ˜ 평균은 ${avg2}μž…λ‹ˆλ‹€.`)
  1. ν•¨μˆ˜ calculateAvgλ₯Ό ν˜ΈμΆœν•˜λ©΄μ„œ λ³€μˆ˜ priceA와 priceBλ₯Ό λ§€κ°œλ³€μˆ˜λ‘œ 전달.
  2. ν•¨μˆ˜ calculateAvg의 λ°”λ”” μ½”λ“œκ°€ 싀행됨. μ΄λ•Œ 1λ²ˆμ—μ„œ μ „λ‹¬ν•œ λ§€κ°œλ³€μˆ˜μ˜ 값이 ν•¨μˆ˜λ₯Ό μ„ μ–Έν•  λ•Œ 썼던 λ§€κ°œλ³€μˆ˜λͺ…인 price1, price2에 ν• λ‹Ήλ˜μ—ˆλ‹€κ³  보면 λœλ‹€.
  3. ν•¨μˆ˜μ˜ λ°”λ”” μ½”λ“œκ°€ μ΅œμ’…μ μœΌλ‘œ λ³€μˆ˜ avgλ₯Ό λ¦¬ν„΄ν•˜κ³  있고, 이것이 λ³€μˆ˜ avg1에 ν• λ‹Ήλœλ‹€.

[ μ—°μŠ΅ ]

// λ§€κ°œλ³€μˆ˜λ₯Ό λ„ˆλ¬΄ 많이 μ‚¬μš©ν•˜λŠ” 것은 쒋지 μ•Šλ‹€!
function average(price1, price2, price3) {
    const sum = price1 + price2 + price3
    const avg = sum / 3
    // ( price1 + price2 + price3 / 3κ³Ό 동일
    return avg
}

const priceA = 15000
const priceB = 30000
const priceC = 24000

const avg1 = average(priceA, priceB, priceC)
console.log(`평균값은 ${avg1}원 μž…λ‹ˆλ‹€.`)

4️⃣ ν΄λž˜μŠ€μ™€ 객체

1) 객체 νƒ€μž…
β†’ 객체 νƒ€μž…μ΄λž€? : κ΄€λ ¨ μžˆλŠ” 데이터듀을 λ¬Άμ–΄μ„œ ν•œ λ²ˆμ— 잘 λ‚˜νƒ€λ‚Ό 수 μžˆλ„λ‘ ν•΄μ£ΌλŠ” 데이터 νƒ€μž…!
객체 = 물리적으둜 μ‘΄μž¬ν•˜κ±°λ‚˜ μΆ”μƒμ μœΌλ‘œ 생각할 수 μžˆλŠ” 것 μ€‘μ—μ„œ μžμ‹ μ˜ 속성을 κ°–κ³  있고 λ‹€λ₯Έ 것과 식별 κ°€λŠ₯ν•œ 것

// λ…ΈνŠΈλΆ1을 것을 ν‘œν˜„ν•˜κΈ° μœ„ν•œ 데이터듀
// λ³€μˆ˜λͺ…을 λͺ…μ‹œμ μœΌλ‘œ ν•˜λŠ” 것 μ΄μ™Έμ—λŠ” 이 λ°μ΄ν„°λ“€μ˜ 관계λ₯Ό ν‘œν˜„ν•΄μ€„ 수 μžˆλŠ” 방법이 μ—†μŒ
const notebook1Name = 'Macbook'
const notebook1Price = 2000000
const notebook1Company = 'Apple'

// 이름, 가격, μ œμ‘°μ‚¬μ™€ 같은 정보λ₯Ό λ‹€ 담을 수 μžˆλŠ” μ’€ 더 큰 λ²”μœ„μ˜ 데이터 νƒ€μž…μ΄ 있으면 쒋지 μ•Šμ„κΉŒ?
// κ΄€λ ¨μžˆλŠ” 정보에 λŒ€ν•΄ ν•˜λ‚˜λ‘œ λ¬Άμ–΄μ„œ ν‘œν˜„ν•  수 있게 ν•΄μ£ΌλŠ” 데이터 νƒ€μž… = 객체 νƒ€μž…
  • 객체λ₯Ό λ§Œλ“€ λ•Œ 마치 μ„€κ³„λ„μ²˜λŸΌ μ‚¬μš©ν•˜λŠ” 것이 λ°”λ‘œ 클래슀.
    κ·Έλž˜μ„œ ν”νžˆλ“€ ν΄λž˜μŠ€λŠ” ν…œν”Œλ¦Ώμ΄κ³  κ°μ²΄λŠ” 이λ₯Ό κ΅¬μ²΄ν™”ν•œ 것이라고도 ν•œλ‹€.
    클래슀λ₯Ό 미리 μ •μ˜ν•΄λ†“μœΌλ©΄ ν•„μš”ν•  λ•Œλ§ˆλ‹€ κ·Έ 클래슀λ₯Ό μ‚¬μš©ν•΄μ„œ λ™μΌν•œ λͺ¨μ–‘을 가진 객체λ₯Ό λ§Œλ“€ 수 μžˆλ‹€.
class Notebook {
	constructor(name, price, company) {
		// 각 객체의 속성에 ν• λ‹Ή
		this.name = name
		this.price = price
		this.company = company
	}
}

-> classλŠ” 클래슀λ₯Ό μ„ μ–Έν•˜λŠ” 문ꡬ λ’€μ—λŠ” 클래슀λͺ…이닀.(ν‘œν˜„ν•˜κ³ μž ν•˜λŠ” 데이터λ₯Ό 잘 λ‚˜νƒ€λ‚΄μ€„ 수 μžˆλŠ” μ΄λ¦„μœΌλ‘œ μ •μ˜ν•˜λŠ” 것이 μ’‹λ‹€!)
constructor은 λ‚˜μ€‘μ— 객체가 '생성'이 될 λ•Œ μžλ°”μŠ€ν¬λ¦½νŠΈ λ‚΄λΆ€μ—μ„œ 호좜이 λ˜λŠ” ν•¨μˆ˜.
this ν‚€μ›Œλ“œλŠ” 클래슀λ₯Ό μ‚¬μš©ν•  λ•Œ λ§Œλ“€μ–΄μ§ˆ 객체 자기 μžμ‹ μ„ μ˜λ―Έν•˜λŠ” ν‚€μ›Œλ“œ. this 뒀에 λΆ™λŠ” name, price. companyκ°€ 객체의 속성이닀.

[ 객체 생성 ]
const λ³€μˆ˜λͺ… = new 클래슀λͺ…(μƒμ„±μžμ—μ„œ μ •μ˜ν•œ λ§€κ°œλ³€μˆ˜λ“€...)

const notebook1 = new Notebook('MacBook', 2360000, 'Apple')

-> 클래슀λ₯Ό ν™œμš©ν•΄ 객체λ₯Ό λ§Œλ“€ λ•ŒλŠ” newλΌλŠ” ν‚€μ›Œλ“œλ₯Ό λ¨Όμ € 써주고 클래슀λͺ…을 마치 ν•¨μˆ˜μ²˜λŸΌ ν˜ΈμΆœν•˜λ©΄μ„œ λ§€κ°œλ³€μˆ˜κ°’μ„ 전달해 μ£Όλ©΄ λœλ‹€. 그러면 ν•΄λ‹Ή 클래슀의 μƒμ„±μžκ°€ ν˜ΈμΆœλ˜λ©΄μ„œ 객체가 μƒμ„±λ˜κ³  객체의 속성듀에 λ§€κ°œλ³€μˆ˜κ°’λ“€μ΄ ν• λ‹Ή!
λ§Œλ“€μ–΄μ§„ κ°μ²΄λŠ” λ³€μˆ˜μ— ν• λ‹Ήλœλ‹€. 객체도 λ³€μˆ˜μ— ν• λ‹Ήν•˜κ³  λ‚˜λ©΄ ν•΄λ‹Ή λ³€μˆ˜λ₯Ό ν™œμš©ν•΄ 객체에 μ ‘κ·Ό κ°€λŠ₯!

[ 객체 속성 ν•˜λ‚˜ν•˜λ‚˜μ— μ ‘κ·Όν•˜λŠ” 방법 β†’ this ν‚€μ›Œλ“œ μ‚¬μš© ]

console.log(notebook) // Notebook { name: 'Macbook', price: 2000000, company: 'Apple' } 
console.log(notebook.name) // MacBook
console.log(notebook.price) // 2000000
console.log(notebokk.company) // Apple
  • λ©”μ†Œλ“œ : ν΄λž˜μŠ€μ—λŠ” 데이터(κ°’)λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ†μ„±λΏλ§Œ μ•„λ‹ˆλΌ ν•¨μˆ˜μ™€ 같이 νŠΉμ • μ½”λ“œλ₯Ό μ‹€ν–‰ν•  수 μžˆλŠ” λ©”μ†Œλ“œλ„ μ •μ˜ν•  수 μžˆλ‹€. 객체λ₯Ό μƒμ„±ν•œ ν›„, λ§Œλ“€μ–΄μ§„ 객체의 λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•˜λ©΄ 끝!
// 클래슀 μ„ μ–Έ
class Product {
	constructor(name, price) {
		this.name = name
		this.price = price
	}

	// 객체의 속성듀을 ν‘œν˜„ν•˜λŠ” 방식에 λŒ€ν•œ λ©”μ†Œλ“œ μ„€μ •
	printInfo() {
		console.log(`name: ${this.name}, price: ${this.price}원`)
	}
}

// 객체 생성 및 λ©”μ†Œλ“œ 호좜
const notebook = new Product('Apple Macbook', 2000000)
notebook.printInfo() // μƒν’ˆλͺ…: Apple Macbook, 가격: 2000000원
  • 객체 λ¦¬ν„°λŸ΄ : μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œλŠ” 객체 λ¦¬ν„°λŸ΄μ„ ν™œμš©ν•΄μ„œ λ°”λ‘œ 객체λ₯Ό λ§Œλ“€ μˆ˜λ„ μžˆλ‹€.
    객체 λ¦¬ν„°λŸ΄μ€ ν΄λž˜μŠ€μ™€ 같은 ν…œν”Œλ¦Ώ 없이 λΉ λ₯΄κ²Œ 객체λ₯Ό λ§Œλ“€ 수 μžˆλŠ” 방법!
    2개 μ΄μƒμ˜ 속성과 λ©”μ†Œλ“œκ°€ μžˆμ„ λ•ŒλŠ” μ‰Όν‘œλ‘œ ꡬ별해 μ£Όκ³  가독성을 μœ„ν•΄μ„œ μ€„λ°”κΏˆλ„ ν•΄μ£ΌλŠ” 게 μ’‹λ‹€.

const λ³€μˆ˜λͺ… = {
속성λͺ…: 데이터,
λ©”μ†Œλ“œλͺ…: function () { λ©”μ†Œλ“œ ν˜ΈμΆœμ‹œ μ‹€ν–‰ν•  μ½”λ“œλ“€ }
}

const computer = {
	name: 'Apple Macbook',
	price: 20000,

	// λ©”μ†Œλ“œ μ„€μ •
	printInfo: function () {
		console.log(`μƒν’ˆλͺ…: ${this.name}, 가격: ${this.price}원`)
	}
}

computer.printInfo()

[ μ—°μŠ΅ ]

class cloths {
    // 객체 속성 μ •μ˜
    constructor(color, size, price) {
        this.color = color
        this.size = size
        this.price = price
        // λ§€κ°œλ³€μˆ˜λ₯Ό 속성에 ν• λ‹Ή
    }

    // λ©”μ†Œλ“œ μ •μ˜ -> 속성듀을 좜λ ₯ν•΄μ£ΌλŠ” λ©”μ†Œλ“œ μ •μ˜
    printInfo(){
        console.log(`color : ${this.color}, size : ${this.size}, price : ${this.price}`)
    }
}

// 객체 생성
const cloth1 = new cloths('red', 'Free', 24000)

// 객체의 λ©”μ†Œλ“œ 호좜
cloth1.printInfo()

5️⃣ λ°°μ—΄

β†’ λ°°μ—΄μ΄λž€? : 같은 ν˜•μ‹μ˜ λ§Žμ€ 데이터λ₯Ό μˆœμ„œλŒ€λ‘œ μ €μž₯ν•˜κ³ μž ν•  λ•ŒλŠ” λ°μ΄ν„°μ˜ 수만큼 λ³€μˆ˜λ“€μ„ μ„ μ–Έν•΄ 쀄 μˆ˜λ°–μ— μ—†λ‹€. μ΄λ•Œ μ“°λŠ” 것이 λ°”λ‘œ λ°°μ—΄!
같은 νƒ€μž…μ˜ 데이터듀을 ν•˜λ‚˜μ˜ λ³€μˆ˜μ— ν• λ‹Ήν•˜μ—¬ κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” 데이터 νƒ€μž….

[ λ°°μ—΄ μ„ μ–Έ 방법 ]

// 1번째 방법
const arr1 = new Array(1, 2, 3, 4, 5, 6, 7)

// 2번째 방법
const arr2 = [1, 2, 3, 4, 5, 6, 7]

-> 2번째 방법은 배열을 λ°”λ‘œ λ§Œλ“œλŠ” 방법.
λŒ€κ΄„ν˜Έ μ•ˆμ— μš°λ¦¬κ°€ λ°°μ—΄λ‘œ μ €μž₯ν•  데이터λ₯Ό μ­‰ λ‚˜μ—΄ν•΄ μ£Όλ©΄ 끝! = 배열을 λ§Œλ“€ λ•ŒλŠ” 1λ²ˆμ§Έλ³΄λ‹€λŠ” 2번째 방법을 많이 μ‚¬μš©ν•œλ‹€.

  • 배열에 μžˆλŠ” 데이터 각각을 μš”μ†Œ(element)라고 λΆ€λ₯Έλ‹€. λ°°μ—΄μ—μ„œλŠ” 인덱슀λ₯Ό ν†΅ν•΄μ„œ 각각의 μš”μ†Œμ— μ ‘κ·Όν•  수 μžˆλ‹€.
    인덱슀? : μΈλ±μŠ€λŠ” λ°°μ—΄ μ•ˆμ˜ 데이터듀이 자리 μž‘μ€ μˆœμ„œ! β†’ μ£Όμ˜ν•  점은 μΈλ±μŠ€λŠ” 1이 μ•„λ‹Œ 0λΆ€ν„° μ‹œμž‘ν•œλ‹€.
const rainbowColors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']

console.log(rainbowColors[0]) // o번 인덱슀λ₯Ό ν†΅ν•΄μ„œ 데이터에 μ ‘κ·Ό. red
console.log(rainbowColors[1]) // 1번 인덱슀λ₯Ό ν†΅ν•΄μ„œ 데이터에 μ ‘κ·Ό. orage
console.log(rainbowColors[2]) // 2번 인덱슀λ₯Ό ν†΅ν•΄μ„œ 데이터에 μ ‘κ·Ό. yellow
console.log(rainbowColors[3]) // 3번 인덱슀λ₯Ό ν†΅ν•΄μ„œ 데이터에 μ ‘κ·Ό. green
console.log(rainbowColors[4]) // 4번 인덱슀λ₯Ό ν†΅ν•΄μ„œ 데이터에 μ ‘κ·Ό. blue
console.log(rainbowColors[5]) // 5번 인덱슀λ₯Ό ν†΅ν•΄μ„œ 데이터에 μ ‘κ·Ό. indigo
console.log(rainbowColors[6]) // 6번 인덱슀λ₯Ό ν†΅ν•΄μ„œ 데이터에 μ ‘κ·Ό. violet
  • λ°°μ—΄μ˜ 길이 β†’ length 속성 ν™œμš©
const rainbowColors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']

console.log(rainbowColors.length) // 7 좜λ ₯

console.log(rainbowColors[rainbowColors.length - 1]) // length λ₯Ό μ‘μš©ν•˜μ—¬ λ°°μ—΄μ˜ λ§ˆμ§€λ§‰ μš”μ†Œλ„ μ‰½κ²Œ μ°Ύμ•„μ„œ 좜λ ₯ κ°€λŠ₯!
  • μš”μ†Œμ˜ 좔가와 μ‚­μ œ β†’ push, pop λ©”μ†Œλ“œ ν™œμš©
const rainbowColors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']

rainbowColors.push('ultraviolet') // λ°°μ—΄μ˜ λ§ˆμ§€λ§‰μ— ultarviolet μΆ”κ°€
console.log(rainbowColors) // ultraviolet이 μΆ”κ°€λœ rainbowColors 좜λ ₯

rainbowColors.pop() // λ°°μ—΄μ˜ λ§ˆμ§€λ§‰ μš”μ†Œ ultraviolet을 제거
console.log(rainbowColors) // ultraviolet이 제거된 rainbowColors 좜λ ₯
  • λ°°μ—΄κ³Ό 반볡문 ν™œμš©
const rainbow = ['red', 'orang', 'yellow', 'green', 'blue', 'indigo', 'violet']

for (let i = 0; i < rainbow.length; i++) {
		console.log(rainbow[i])
	  // 0λΆ€ν„° 6κΉŒμ§€μ˜ μš”μ†Œ 뢈러였기
}

// 방법2
for (const color of rainbow){
    console.log(color)
}

[ μ—°μŠ΅ ]

const price = [23000, 15000, 9900, 70000, 46000, 12000, 34000, 45000, 20000, 8600]
let sum = 0

for (let i = 0; i < price.length; i++){
    sum = sum + price[i]    
}
// for (const prices od price) {
//     sum += price   
// }

const totalSum = sum
const avg = sum / price.length

console.log(`합계 : ${totalSum} 평균 : ${avg}`)
profile
🏠 λΈ”λ‘œκ·Έ 이전 쀑 β†’ https://medium.com/@sebinndev

0개의 λŒ“κΈ€