๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ‘ฉ‍๐Ÿ’ป ๊ฐœ๋ฐœ ๊ณต๋ถ€

[JS] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ ๊ฐ•์ขŒ ์ •๋ฆฌ

YouTube ์ฝ”๋”ฉ์•™๋งˆ ๋‹˜ ๊ธฐ์ดˆ ๊ฐ•์ขŒ ์š”์•ฝ๋ณธ.

์Šคํƒ ๋‹ค๋“œํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ •์‹์œผ๋กœ ๊ณต๋ถ€ํ•ด๋ณธ ์ ์€ ์—†์–ด์„œ,

์˜ˆ์ „์— ์œ ํŠœ๋ธŒ๋กœ ๊ฐ•์˜ ๋“ค์œผ๋ฉด์„œ ๋…ธ์…˜์œผ๋กœ ์ •๋ฆฌํ•ด๋†จ์—ˆ๋Š”๋ฐ

ํ•„์š”ํ•œ ์‚ฌ๋žŒ์ด ์žˆ์„๊นŒ๋ด ๊ณต์œ .

์ฐธ๊ณ ๋กœ ๋ณธ์ธ์€ ์ฝ”๋”ฉ ๊ด€๋ จ ๊ฐœ๋…์ด ์–ด๋Š์ •๋„ ์žˆ๋Š” ์ƒํƒœ๋ผ์„œ ํ•„๊ธฐ๊ฐ€ ๊ผผ๊ผผํ•˜์ง„ ์•Š์Œ!


๋ณ€์ˆ˜

const a= “๋‚˜๋Š” ”;

const b= ‘๋”ฐ์˜ดํ‘œ’;

console.log(a+b); → “๋‚˜๋Š” ๋”ฐ์˜ดํ‘œ”

 

const num=30; // number

console.log(a, num); → “๋‚˜๋Š”” 30

console.log(a+num); → “๋‚˜๋Š” 30” (+๋ฅผ ํ•˜๋ฉด ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜๋จ)

 

const new_a = `this is new ${a}` ;

1 ์˜†์—์žˆ๋Š” โ‚ฉโ‚ฉ ์–˜๋ฅผ ์˜์–ดํ‚ค๋กœ ์“ฐ๋ฉด ``์ž„. ๋‚ด๋ถ€์— ๋ณ€์ˆ˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅ.

 

๋Œ€ํ™”์ƒ์ž

alert() = ๋ฉ”์„ธ์ง€ ๋„์šฐ๊ธฐ (ํ™•์ธ๋ฒ„ํŠผ ์กด์žฌ)

prompt() = ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›๊ณ  ๋ณ€์ˆ˜์— ํ• ๋‹น (์ทจ์†Œ, ํ™•์ธ๋ฒ„ํŠผ). ์ทจ์†Œ ๋ˆ„๋ฅผ ์‹œ null ๋ฐ˜ํ™˜!

confirm() = ์ž‘์—…์„ ํ™•์ธ๋ฐ›๋Š” ์šฉ๋„. ์ทจ์†Œ, ํ™•์ธ ๋ฒ„ํŠผ ์žˆ์Œ → false / true ๋ฐ˜ํ™˜

 

๋””ํดํŠธ ๊ฐ’ ๋„ฃ์–ด์ฃผ๊ธฐ

const name = prompt(”์˜ˆ์•ฝ์ผ์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.”, “2020-10-”); → ์‰ผํ‘œ ๋’ค์˜ ๊ฒƒ์ด default๋กœ ์ž…๋ ฅ๋˜์–ด ํ‘œ์‹œ๋จ

 

const delete_on = confirm(”์ •๋ง ์‚ญ์ œํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?”);

๋‹จ์  : ์Šคํฌ๋ฆฝํŠธ ์ผ์‹œ์ •์ง€, ์Šคํƒ€์ผ๋ง ๋ถˆ๊ฐ€(๋””์ž์ธ ์ค‘๊ตฌ๋‚œ๋ฐฉ)

ํ˜•๋ณ€ํ™˜

prompt๋กœ ์ˆซ์ž ์ž…๋ ฅ์„ ๋ฐ›๊ณ  ์—ฐ์‚ฐ ์ˆ˜ํ–‰ ์‹œ ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์€ ํ•ญ์ƒ ๋ฌธ์žํ˜•์ด๋‹ค!

๋”ฐ๋ผ์„œ ์—ฐ์‚ฐ ์‹œ ์ด์ƒํ•˜๊ฒŒ ๋‚˜์˜ด (๋ฌธ์ž์—ด์ด ๋”ํ•ด์ง„ ํ›„ ์ž๋™ํ˜•๋ณ€ํ™˜์œผ๋กœ ์—ฐ์‚ฐ๋จ)

→ ๋ช…์‹œ์  ํ˜•๋ณ€ํ™˜ ํ•„์š”

String() : ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜

Number() : ์ˆซ์ž๋กœ ๋ณ€ํ™˜, ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ NaN ๋ฐ˜ํ™˜ (Not a Number), true/false → 1/0

Boolean()

์œ„์˜ false ์˜ˆ์‹œ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ชจ๋‘ true.

์—ฐ์‚ฐ

      • / % **(๊ฑฐ๋“ญ์ œ๊ณฑ)

+= -= *= ๋“ฑ ์‚ฌ์šฉ๊ฐ€๋Šฅ.

์ฆ๊ฐ€ ์—ฐ์‚ฐ์ž, ๊ฐ์†Œ ์—ฐ์‚ฐ์ž : ++, —

let new= num++ : ์ฆ๊ฐ€์‹œํ‚ค๊ธฐ ์ „์˜ ๊ฐ’์„ ๋ณ€์ˆ˜์— ๋„ฃ์Œ

let new= ++num : ์ฆ๊ฐ€์‹œํ‚จ ๊ฐ’

๋น„๊ต ์—ฐ์‚ฐ์ž

==(๋™๋“ฑ์—ฐ์‚ฐ์ž), !=, >= ๋“ฑ

=== : ํƒ€์ž…๊นŒ์ง€ ๋น„๊ตํ•ด์„œ t/f ๋ฐ˜ํ™˜ (์ผ์น˜ ์—ฐ์‚ฐ์ž)

 

์กฐ๊ฑด๋ฌธ if

if(age > 19) {

console.log(ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค);

}

else if(age === 19){ console.log(์ˆ˜๋Šฅ ํ™”์ดํŒ…); }

else{ console.log(19์„ธ ๋ฏธ๋งŒ ์ž…์žฅ๋ถˆ๊ฐ€); }

๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž ||, &&, !

or์€ ์ฒซ ๋ฒˆ์งธ true๋ฅผ ๋ฐœ๊ฒฌํ•˜๋Š” ์ฆ‰์‹œ ํ‰๊ฐ€๋ฅผ ๋ฉˆ์ถค. → ๋ฒ”์œ„๊ฐ€ ์ž‘์€ ์กฐ๊ฑด๋ถ€ํ„ฐ ๋จผ์ € ๊ฑธ์–ด๋†“๋Š”๊ฒŒ ์ข‹์Œ

and๋Š” ์ฒซ ๋ฒˆ์งธ false๋ฅผ ๋ฐœ๊ฒฌํ•˜๋Š” ์ฆ‰์‹œ ํ‰๊ฐ€๋ฅผ ๋ฉˆ์ถค.

์šฐ์„ ์ˆœ์œ„ : && > ||, &&์—์„œ false๊ฐ€ ๋ฐ˜ํ™˜๋˜์–ด๋„ ||์—์„œ true๊ฐ€ ๋‚˜์˜ค๋ฉด true.

์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ ์‹ถ๋‹ค๋ฉด ( ) ๊ด„ํ˜ธ ์‚ฌ์šฉ!

๋ฐ˜๋ณต๋ฌธ LOOP

for(let i=0; i<10; i++) { ~; }

→ ์ดˆ๊ธฐ๊ฐ’, ์กฐ๊ฑด(false๊ฐ€ ๋˜๋ฉด ๋ฉˆ์ถค), ์ฝ”๋“œ 1ํšŒ ์‹คํ–‰ ํ›„์˜ ์ž‘์—…

let i=0;

while (i<10) { ~; i++; } → i๋ฅผ ๋‚ด๋ถ€์—์„œ ๊ฐ’ ์ฆ๊ฐ€์‹œ์ผœ์ค˜์•ผ loop๊ฐ€ ๋ฉˆ์ถ”๊ฒŒ ๋จ.

do{ ~; i++; } while(i<10) → ์กฐ๊ฑด๋ฌธ์ด ๋’ค์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ ์–ด๋„ ํ•œ๋ฒˆ์€ ์‹คํ–‰๋จ.

break, continue

 

Switch

switch( fruit ){

case ‘์‚ฌ๊ณผ’ :
	console.log(’์‚ฌ๊ณผ์ž…๋‹ˆ๋‹ค’);
	break; // ์Šค์œ„์น˜๋ฌธ์—์„œ๋Š” break ํ•„์ˆ˜

case ‘ํฌ๋„’ :
case ‘๊ฑฐ๋ด‰’ :
	console.log(’ํฌ๋„์ž…๋‹ˆ๋‹ค’);
	break;

default :
	console.log(’๋‹ค๋ฅธ ๊ณผ์ผ์ž…๋‹ˆ๋‹ค’);
}

ํ•จ์ˆ˜

๊ธฐ๋ณธ๊ฐ’ (ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ)

function sayHello(name) {

let newName = name || ‘friend’; → ๋งค๊ฐœ๋ณ€์ˆ˜ ์ž…๋ ฅ ์—†์„ ์‹œ default๊ฐ’์œผ๋กœ ๋ณ€์ˆ˜ํ• ๋‹น

let msg = Hello, ${newName};

console.log(msg)

}

or function sayHello(name = ‘friend) ๋กœ ์„ ์–ธ

→ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ž๋ฆฌ์— ๋ฐ”๋กœ default ๋„ฃ์–ด์ฃผ๊ธฐ

 

sayHello(); // → Hello, friend

sayHello(’Jane’) // → Hello, Jane

 

function add(num1, num2) {

return num1+num2;

}

→ return; or ๋ฆฌํ„ด๊ฐ’์ด ์—†์„ ์‹œ undefined๋ฅผ ๋ฐ˜ํ™˜.

  • ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ : ์–ด๋””์„œ๋“  ํ˜ธ์ถœ ๊ฐ€๋Šฅ. hoisting
  • ํ•จ์ˆ˜ ํ‘œํ˜„์‹ : ์ฝ”๋“œ์— ๋„๋‹ฌํ•˜๋ฉด ์ƒ์„ฑ. ๋”ฐ๋ผ์„œ ์„ ์–ธ ์ดํ›„์—๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜(arrow func)

์ฝ”๋“œ ๋‚ด์šฉ์ด ํ•œ ์ค„์ด๋ฉด ํ•จ์ˆ˜ ๋‚ด์šฉ์— ์†Œ๊ด„ํ˜ธ ์‚ฌ์šฉ ๊ฐ€๋Šฅ!

let add = (num1, num2) ⇒ (num1 + num2; ); // return์ด ํ•œ ์ค„์ด๋ผ๋ฉด return ์ƒ๋žต ๊ฐ€๋Šฅ

let sayHello = **name** ⇒ Hello, ${name}; // ์ธ์ˆ˜๊ฐ€ ํ•œ ๊ฐœ๋ผ๋ฉด ๊ด„ํ˜ธ ์ƒ๋žต ๊ฐ€๋Šฅ

let showError = () ⇒ { alert(’error’); }; // ์ธ์ˆ˜๊ฐ€ ์—†์„ ๊ฒฝ์šฐ๋Š” ๊ด„ํ˜ธ ์ƒ๋žต ๋ถˆ๊ฐ€

 

์ฝ”๋“œ ๋‚ด์šฉ์ด ์—ฌ๋Ÿฌ์ค„์ด๋ผ๋ฉด { } ์‚ฌ์šฉํ•ด์•ผํ•จ

 

let add = {num1, num2) ⇒ {

const re = num1 + num2;

return re;

};

 

Object (๊ฐ์ฒด)

ํ”„๋กœํผํ‹ฐ = ํ‚ค : ๊ฐ’

์ ‘๊ทผ

superman.name or superman[’age’]

์ถ”๊ฐ€

superman.gender = ‘male’;

superman[’hairColor’] = ‘black’; // ์—†๋Š” ๋‚ด์šฉ์„ ์“ฐ๋ฉด ์ถ”๊ฐ€๋จ

์‚ญ์ œ

delete superman.hairColor;

์ด๋ฆ„๊ณผ ๋‚˜์ด๋ฅผ ๋ฐ›์•„์„œ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜

function makeObject(name, age){

  return{

    name : name,

    age : age,

    hobby : ‘football’

  };

}

const Mike = makeObject(”Mike”, 30);

console.log(Mike);

 

๊ฐ์ฒด in / ๊ฐ์ฒด๋ฅผ ํ•จ์ˆ˜์— ๋„ฃ์„ ๋•Œ

function isAdult(user) {

  if (!(’age’ in user) || user.age < 20) { return false; } // user์— age๊ฐ€ ์—†๊ฑฐ๋‚˜ 20์‚ด ๋ฏธ๋งŒ์ผ ๋•Œ

  return true;

}

 

Method (๋ฉ”์†Œ๋“œ)

  • ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ์ผ๋ฐ˜ ํ•จ์ˆ˜์™€๋Š” ๋‹ฌ๋ฆฌ ์ž์‹ ๋งŒ์˜ this๋ฅผ ๊ฐ€์ง€์ง€ ์•Š์Œ!!
  • ๊ทธ๋ž˜์„œ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ this ์‚ฌ์šฉ ์‹œ, ๊ทธ this๋Š” ์™ธ๋ถ€์—์„œ(์ƒ์œ„ scope์—์„œ) ๊ฐ’์„ ๊ฐ€์ ธ์˜ด.

๊ทธ๋Ÿฌ๋ฏ€๋กœ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜์˜ this์™€ ์™ธ๋ถ€ ํ•จ์ˆ˜์˜ this๊ฐ„ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ!

์ฝœ๋ฐฑ ํ•จ์ˆ˜์˜ this ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค

 

ํ•˜์ง€๋งŒ ์ดˆ๋ณด์ž๋“ค์€ ํ—ท๊ฐˆ๋ฆฌ๋‹ˆ๊นŒ..๊ฐ์ฒด๋‚ด๋ถ€ ๋ฉ”์†Œ๋“œ ์ •์˜ ์‹œ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ์•ˆ ์“ฐ๋Š”๊ฒŒ ์ข‹์Šต๋‹ˆ๋‹น

 

๋ฐฐ์—ด (Array) : ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ

index๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘

js์˜ ๋ฐฐ์—ด์€ ๋ฌธ์ž, ์ˆซ์ž, ๊ฐ์ฒด, ํ•จ์ˆ˜ ๋“ฑ์„ ํฌํ•จ ๊ฐ€๋Šฅ

length : ๋ฐฐ์—ด ๊ธธ์ด

push() : ๋ฐฐ์—ด ๋์— ์ถ”๊ฐ€

pop() : ๋ฐฐ์—ด ๋ ์š”์†Œ ์ œ๊ฑฐ

shift(), unshift() : ๋ฐฐ์—ด ์•ž์— ์ œ๊ฑฐ, ์ถ”๊ฐ€. ํ•œ๋ฒˆ์—๋„ ๊ฐ€๋Šฅ

for๋ฌธ ์‚ฌ์šฉ ์šฉ์ด

for … of ์‚ฌ์šฉ ๊ฐ€๋Šฅ! for(let i of days) { }