Lecture/μ½”λ“œμŠ€ν…Œμ΄μΈ 

[SEB FE] Section 1 unit2 - λ³€μˆ˜μ™€ μžλ£Œν˜• μ—¬λŸ¬ 문제 ν’€κΈ°

Dong _ hwa 2022. 8. 22. 18:11

let anythingVariable = 'hello';
anythingVariable = 'codestates!';
console.log(anythingVariable);

=> codestates!

 


A. Boolean νƒ€μž…μ€ 논리 μš”μ†Œλ₯Ό λ‚˜νƒ€λ‚΄λ©° true와 false 두 κ°€μ§€μ˜ 값을 κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.
B. Null νƒ€μž…μ€ null ν•˜λ‚˜μ˜ κ°’λ§Œ κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.
C. 값을 ν• λ‹Ήν•˜μ§€ μ•Šμ€ λ³€μˆ˜λŠ” null 값을 κ°€μ§‘λ‹ˆλ‹€. -> undefined
D. String νƒ€μž…μ€ ν…μŠ€νŠΈ 데이터λ₯Ό λ‚˜νƒ€λ‚Ό λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
βœ… nullκ³Ό undefined의 차이.
βœ… null은 μ–΄λ–€ 값이 μ˜λ„μ μœΌλ‘œ λΉ„μ–΄μžˆμŒ, ν•΄λ‹Ή λ³€μˆ˜κ°€ μ–΄λ–€ 객체도 가리킀고 μžˆμ§€ μ•Šλ‹€λŠ” 것을 의미.
βœ… undefined은 값이 μ§€μ •λ˜μ–΄ μžˆμ§€ μ•Šμ€ 경우, 값이 ν• λ‹Ήν•˜μ§€ μ•Šμ€ λ³€μˆ˜, λ©”μ„œλ“œμ™€ μ„ μ–Έμ—μ„œ
	λ³€μˆ˜κ°€ ν• λ‹Ήλ°›μ§€ μ•Šμ€ 경우, ν•¨μˆ˜κ°€ 값을 return ν•˜μ§€ μ•Šμ€ 경우.

* == 와 ===의 차이

'=='와 '===' μ—°μ‚°μžμ˜ 주된 차이점은

숫자λ₯Ό 숫자 λ¦¬ν„°λŸ΄(Literal :  λ¦¬ν„°λŸ΄μ€ λ°μ΄ν„° κ·Έ 자체λ₯Ό 뜻 ν•œλ‹€. λ³€μˆ˜μ— λ„£λŠ” λ³€ν•˜μ§€ μ•ŠλŠ” λ°μ΄ν„°λ₯Ό μ˜λ―Έν•˜λŠ” 것)κ³Ό 비ꡐ

ν•˜λ©΄, '=='λŠ” 그것을 ν—ˆμš©ν•˜μ§€λ§Œ, '===' 두 λ³€μˆ˜μ˜ ν˜•μ‹μ€ λ™μΌν•˜μ§€ μ•Šμ€ 경우, κ°’λΏλ§Œ μ•„λ‹ˆλΌ 두 λ³€μˆ˜μ˜ μœ ν˜•λ„ ν™•μΈν•˜λ―€λ‘œ, ν—ˆμš©ν•˜μ§€ μ•ŠλŠ” 것이닀.

즉, '==='λŠ” 'false'으둜 λ°˜ν™˜ν•˜κ³ , '=='λŠ” 'true'둜 λ°˜ν™˜ν•œλ‹€.

ν•˜μ§€λ§Œ μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ ==λŠ” 잊고 ===만 κΈ°μ–΅ν•  것! (μ˜ˆμ™Έκ°€ λ§Žλ‹€)

 

 

 

let whatIsThis = '123';
let whatIsThat = 123;

console.log(whatIsThis === whatIsThat);

-> false

 

: whatIsThis와 whatIsThat은 값은 κ°™μœΌλ‚˜ κ·Έ νƒ€μž…μ΄ Stringκ³Ό Number둜 λ‹€λ₯΄λ―€λ‘œ, μ—„κ²©νžˆ λΉ„κ΅ν–ˆμ„ λ•Œ κ°™μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— falseκ°€ 리턴


function triangle(base, height){
		return (base * height)/2
}

triangle(3, 4);

function square(base){
		let side = base;
		return base * side;
}

square(3);
A. ν•¨μˆ˜ triangle 은 argument둜 base와 heightλ₯Ό 전달받고 μžˆμŠ΅λ‹ˆλ‹€. -> parameter 
 

 

B. 호좜된 triangle(3, 4) 은 6을 λ¦¬ν„΄ν•©λ‹ˆλ‹€.
C. 리턴 μ‹œμ μ—, ν•¨μˆ˜ square 의 parameter base와 ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ μ„ μ–Έλœ λ³€μˆ˜ sideλŠ” 같은 값을 κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€.
 - 리턴 μ‹œμ μ—(return base * side;), ν•¨μˆ˜ square의 parameter baseκ°€ ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ μ„ μ–Έλœ λ³€μˆ˜ side에 ν• λ‹Ήλœλ‹€.
    κ·Έλž˜μ„œ base와 side의 값은 κ°™λ‹€

 

D. ν•¨μˆ˜ square λŠ” argument둜 3 외에 4κ°€ 같이 전달될 μ‹œ, 같이 μ „λ‹¬λœ 4λŠ” λ¬΄μ‹œν•˜κ³  μ•žμ˜ 3만 전달 λ°›μ•„ 9λΌλŠ” 값을 λ¦¬ν„΄ν•©λ‹ˆλ‹€.
 - λ§€κ°œλ³€μˆ˜κ°€ ν•˜λ‚˜λ§Œ μžˆμ„ λ–„μ—λŠ” λ‹€λ₯Έ 것듀이 전달이 μ•ˆλ˜κ³  λ¬΄μ‹œκ°€ 됨
 - λ°˜λŒ€λ‘œ νŒŒλΌλ―Έν„°κ°€ 더 많으면..?
# parameter (λ§€κ°œλ³€μˆ˜)
# ν•¨μˆ˜μ˜ μ •μ˜ 뢀뢄에 λ‚˜μ—΄λ˜μ–΄ μžˆλŠ” λ³€μˆ˜, μ—¬κΈ°μ„œλŠ” plus ν•¨μˆ˜ μ •μ˜μ‹œμ— μ‚¬μš©λ˜λŠ” a, bλ₯Ό parameter(λ§€κ°œλ³€μˆ˜) 라고 ν•œλ‹€.
def plus(a, b):
  return a + b

# argument (μ „λ‹¬μΈμž)
# ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν• λ•Œ 전달 λ˜λŠ” μ‹€μ œ κ°’, μ—¬κΈ°μ„œλŠ” plus λΌλŠ” ν•¨μˆ˜μ— λ„£μ–΄μ£ΌλŠ” κ°’ 1, 2λ₯Ό argument(μ „λ‹¬μΈμž)라고 ν•œλ‹€.
result = plus(1, 2)

 


convertToNumber

μš°λ¦¬κ°€ μ›Ή λΈŒλΌμš°μ €μ— μ ν˜€μžˆλŠ” 정보λ₯Ό κ°€μ Έμ˜€λ©΄ 보톡 string의 ν˜•νƒœλ‘œ λ°›μ•„μ˜€κ²Œ λœλ‹€.

숫자둜 μ„Έκ³  싢은 정보도 string으둜 μΈμ‹ν•˜κΈ° λ•Œλ¬Έμ—, 정상적인 숫자λ₯Ό μœ„ν•œ 연산을 μˆ˜ν–‰ν•  수X 

-> νƒ€μž…μ„ 변경해야함 : number둜 λ³€κ²½ν•˜κΈ° μœ„ν•΄μ„œλŠ” Number() ν•¨μˆ˜λ₯Ό μ‚¬μš©

 

Number('100')

-> 100

 

-μž„μ˜μ˜ κ°’(anything) number ν˜•νƒœλ‘œ 리턴

function convertToNumber(anything) {
  return Number(anything)​

let output 을 ν•˜κ³ / console.log둜 좜λ ₯을 해도 값이 λ‚˜μ˜¬ 쀄 μ•Œμ•˜λŠ”λŽ…..

 

 


ν˜œμ„ μ΄μ—κ²Œ λ‘λ£¨λ§ˆλ¦¬ νœ΄μ§€ 3개λ₯Ό κ°€μ Έλ‹€ 달라

λ³€μˆ˜ thing에 λ¬Έμžμ—΄(string) 'λ‘λ£¨λ§ˆλ¦¬ νœ΄μ§€'λ₯Ό ν• λ‹Ήν•˜κ³ , λ³€μˆ˜ num에 숫자(number) 3을 ν• λ‹Ή

let thing, num
thing = 'λ‘λ£¨λ§ˆλ¦¬ νœ΄μ§€'
num = 3

// TODO : thing에 λ¬Έμžμ—΄(string) 'λ‘λ£¨λ§ˆλ¦¬ νœ΄μ§€'λ₯Ό ν• λ‹Ήν•˜κ³ , num에 숫자(number) 3을 ν• λ‹Ήν•©λ‹ˆλ‹€.

function goGet(thing, num) {
  return 'ν˜œμ„ μ•„, κ°€μ„œ ' + thing + ' ' + num + '개 κ°€μ Έλ‹€ μ€„λž˜?';
}
let result = goGet(thing, num);

thingμ΄λΌλŠ” λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜μ—¬ λ¬Έμžμ—΄ 'λ‘λ£¨λ§ˆλ¦¬ νœ΄μ§€'λ₯Ό ν• λ‹Ήν•˜κ³ , numμ΄λΌλŠ” λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜μ—¬ 숫자 3을 ν• λ‹Ήν•©λ‹ˆλ‹€.

A : let thing, num = ('λ‘λ£¨λ§ˆλ¦¬ νœ΄μ§€', 3)
B : let thing = 'λ‘λ£¨λ§ˆλ¦¬ νœ΄μ§€',
	num = 3;
C : let thing = 'λ‘λ£¨λ§ˆλ¦¬ νœ΄μ§€', let num = 3
D : let thing = 'λ‘λ£¨λ§ˆλ¦¬ νœ΄μ§€';
	let num = 3;

-λ‹΅ :  B,D (λ‚΄κ°€ μ“΄ 닡은 C,D γ… _γ… )

 

A번 μ½”λ“œλŠ” ν•¨μˆ˜ 호좜 방식과 λ³€μˆ˜ μ„ μ–Έ 및 κ°’ ν• λ‹Ή 방식을 ν˜Όλ™ν•œ μ½”λ“œ ν‘œκΈ° λ°©μ‹μž…λ‹ˆλ‹€.

B번 μ½”λ“œλ„ μ˜¬λ°”λ₯Έ λ³€μˆ˜ μ„ μ–Έ 및 κ°’ ν• λ‹Ή λ°©μ‹μž…λ‹ˆλ‹€. μ‰Όν‘œλ₯Ό ν™œμš©ν•΄μ„œ ν‚€μ›Œλ“œλ₯Ό ν•œ 번만 μ‚¬μš©ν•˜μ—¬ λ³€μˆ˜ μ„ μ–Έκ³Ό κ°’ 할당을 ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 두 방법은 λ‘˜ λ‹€ 자주 μ‚¬μš©λ©λ‹ˆλ‹€.

 - μ‰Όν‘œλ₯Ό μ‚¬μš©ν•˜λ©΄ μ—¬λŸ¬κ°œμ˜ λ³€μˆ˜λ₯Ό ν•œλ²ˆμ— μ„ μ–Έν•˜κ³  ν• λ‹Ήν•  수 있음

C번 μ½”λ“œ μ—­μ‹œ μ˜¬λ°”λ₯΄μ§€ λͺ»ν•œ μ½”λ“œ ν‘œκΈ° λ°©μ‹μž…λ‹ˆλ‹€. μ‰Όν‘œλ₯Ό ν™œμš©ν•œ ν•¨μˆ˜ μ„ μ–Έ 및 κ°’ ν• λ‹Ή 방식이 μžˆμ§€λ§Œ, μ„ μ–Έ ν‚€μ›Œλ“œ let을 μ€‘λ³΅ν•˜μ—¬ μ‚¬μš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

 - let을 두 번 μ“°μ§€ μ•ŠλŠ”λ‹€.

D번 μ½”λ“œκ°€ μ˜¬λ°”λ₯Έ λ³€μˆ˜ μ„ μ–Έ 및 κ°’ ν• λ‹Ή λ°©μ‹μž…λ‹ˆλ‹€. λ³€μˆ˜ μ„ μ–Έ μ‹œμ—λŠ” ν‚€μ›Œλ“œ let을 μ‚¬μš©ν•˜κ³ , 할당을 μœ„ν•΄μ„œλŠ” ν• λ‹Ή μ—°μ‚°μž = 을 μ‚¬μš©ν•©λ‹ˆλ‹€. 이 두 λ™μž‘μ„ ν•œ λ²ˆμ— 적은 것이 2번 μ½”λ“œμž…λ‹ˆλ‹€.

λ‹€λ§Œ, B와 D 두 방식을 ν˜Όμš©ν•˜μ§€ μ•Šκ³  ν•˜λ‚˜μ˜ λ°©μ‹μœΌλ‘œ ν†΅μΌν•˜μ—¬ μ‚¬μš©ν•˜μ—¬μ•Ό ν•©λ‹ˆλ‹€. ν˜Όμžμ„œ λ³΄λŠ” μ½”λ“œλΌλ©΄ 상관없을 수 μžˆμ§€λ§Œ, μ—¬λŸ¬ μ‚¬λžŒμ΄ ν•¨κ»˜ 보고 λ¦¬λ·°ν•˜λŠ” μ½”λ“œλŠ” 직관적이고 가독성 있게 μž‘μ„±ν•΄μ•Ό ν•©λ‹ˆλ‹€.

 


μž¬ν• λ‹Ή!

let anythingVariable = 'hello';
anythingVariable = 'codestates!';
console.log(anythingVariable);

ν‚€μ›Œλ“œ let으둜 μ„ μ–Έλœ λ³€μˆ˜ anythingVariable은 κ°’μ˜ μž¬ν• λ‹Ήμ΄ κ°€λŠ₯

anythingVariable에 μ²˜μŒμ— ‘hello’λΌλŠ” 값이 할당이 λ˜μ—ˆλ‹€κ°€, 이후 ’codestates!’λ₯Ό ν• λ‹Ήν–ˆμœΌλ―€λ‘œ,

anythingVariable의 μ΅œμ’…μ μΈ 값은 ’codestates!’

 

 

let whatIsValue = '123';
whatIsValue = 123;

console.log(typeof whatIsValue);

whatIsValue λŠ” μ²˜μŒμ—λŠ” String νƒ€μž…μΈ ‘123’으둜 ν• λ‹Ήλ˜μ—ˆμ§€λ§Œ,

이후 Number νƒ€μž…μΈ 123 으둜 μž¬ν• λ‹Ή λ˜μ—ˆμœΌλ―€λ‘œ μ΅œμ’…μ μœΌλ‘œ Number νƒ€μž…

 


function sayYourName(name) {
	console.log('hello');
	console.log('my name');
	console.log('is ' + name);
}

sayYourName('kim coding');

-> hello

my name

is kim coding

- sayYourName 은 name을 λ§€κ°œλ³€μˆ˜(parameter)둜 ν•΄ μ„ μ–Έλœ ν•¨μˆ˜μ΄λ©°, console.log()λ₯Ό μ΄μš©ν•˜μ—¬ μ•ˆμ— λ“€μ–΄μžˆλŠ” λ¬Έμžμ—΄μ„ μ°¨λ‘€λŒ€λ‘œ 둜그둜 좜λ ₯ν•˜λŠ” 둜직이 ν•¨μˆ˜ 내뢀에 λ“€μ–΄μžˆμŠ΅λ‹ˆλ‹€.