Javascript ๋ฌธ๋ฒ• ๐Ÿ“‘

Seoyul Kimยท2020๋…„ 8์›” 8์ผ
0

Javascript

๋ชฉ๋ก ๋ณด๊ธฐ
1/4

variables

var ๋ณ€์ˆ˜์ด๋ฆ„ = ๊ฐ’;

var name = "๊น€์„œ์œจ";
  • ๊น€์„œ์œจ์€ name์ด๋ผ๋Š” ๋ณ€์ˆ˜์— ํ• ๋‹น๋œ ๊ฐ’

  • ๋ณ€์ˆ˜ ์ด๋ฆ„์€ ์›ํ•˜๋Š” ๋Œ€๋กœ ์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ค์Œ ๋ช‡๊ฐ€์ง€ ์‚ฌํ•ญ์„ ์ฃผ์˜ํ•ด์•ผํ•œ๋‹ค.

1) ํ•œ ํŒŒ์ผ์—์„œ ๊ฐ™์€ ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ์ค‘๋ณตํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

2) ๋ณ€์ˆ˜์ด๋ฆ„, ํ•จ์ˆ˜์ด๋ฆ„, ์—ฐ์‚ฐ์ž ๋ชจ๋‘ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค.(myName ๊ณผ MyName์€ ๋‹ค๋ฅด๋‹ค.)

3) ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ์ •ํ•  ๋–„ ์ฒซ๋ฒˆ์จฐ ๋ฌธ์ž๋Š” ๋ฐ˜๋“œ์‹œ ๊ธ€์ž๋‚˜ ๋ฐ‘์ค„(_), ๋‹ฌ๋Ÿฌ๊ธฐํ˜ธ($)์ค‘ ํ•˜๋‚˜์ด๋‹ค.

4) ๋‘๋ฒˆ์จฐ ๋ฌธ์ž๋ถ€ํ„ฐ๋Š” ๊ธ€์ž, ๋ฐ‘์ค„ ๋‹ฌ๋Ÿฌ, ์ˆซ์ž ์ค‘์— ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

5) ๋ณ€์ˆ˜์ด๋ฆ„, ํ•จ์ˆ˜์ด๋ฆ„, ๋“ฑ camelCase ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ

camelCase vs snake_case

camelCase

  • ๋‚™ํƒ€์˜ ๋“ฑ์ฒ˜๋Ÿผ ์šธํ‰๋ถˆํ‰ํ•˜๋‹ค๋Š” ์˜๋ฏธ๋กœ ๋‹จ์–ด๊ฐ€ ์ƒˆ๋กœ ์‹œ์ž‘ํ•  ๋•Œ๋ถ€ํ„ฐ ๋Œ€๋ฌธ์ž๋กœ ์“ด๋‹ค.(firstSecond, myProfileImg, toDoListArray)

snake_case

  • ๋ณ€์ˆ˜ ์ด๋ฆ„์— -๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— _๋ฅผ ์‚ฌ์šฉํ•œ๊ฒƒ์ด์ง€๋งŒ ์ž˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.(first_second, my_profile_img, to_do_list_array)

๋ณ€์ˆ˜๋ช…์„ ์ž˜ ์ง€์œผ๋ฉด ๋‚˜์ค‘์— ๋ณด๋”๋ผ๋„ ์ž์‹ ์˜ ์ฝ”๋“œ๋ฅผ ๋”์šฑ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ณ  ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์— ๋“ค์–ด๊ฐˆ ๋ฆฌ์†Œ์Šค๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์–ด ๊ฐœ๋ฐœ์˜ ํšจ์œจ์ด ๋†’์•„์ง„๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจํ˜ธํ•˜์ง€ ์•Š๊ณ , ๋ณ€์ˆ˜๋ช… ๋งŒ์œผ๋กœ๋„ ์˜๋ฏธ๊ฐ€ ์ถ”์ธก ๊ฐ€๋Šฅํ•˜๊ฒŒ ์ง“๋Š”๋‹ค.

let, const

  • ์›๋ž˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ณ€์ˆ˜ ์„ ์–ธ์€ var๋ฅผ ํ†ตํ•ด์„œ๋งŒ ๊ฐ€๋Šฅํ–ˆ๋Š”๋ฐ, ๋ฒ„์ „์ด ์˜ฌ๋ผ๊ฐ€๋ฉด์„œ let๊ณผ const๋ผ๋Š” ํ‚ค์›Œ๋“œ๊ฐ€ ์ƒˆ๋กญ๊ฒŒ ์ƒ๊ฒผ๋‹ค.

  • ์‚ฌ์šฉ๋ฒ•์€ var์™€ ๊ฐ™์ง€๋งŒ let ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณ€์ˆ˜ ๊ฐ’์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ณ , const ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ๋ณ€์ˆ˜๋Š” ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋‹ค.

  • ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•˜๊ณ  ์˜์›ํžˆ ์ˆ˜์ •ํ•  ์ผ์ด ์—†์œผ๋ฉด const๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋ณ€์ˆ˜ ๊ฐ’์ด ํ•œ๋ฒˆ์ด๋ผ๋„ ์ˆ˜์ • ๋  ์˜ˆ์ •์ด๋ผ๋ฉด let์„ ์‚ฌ์šฉํ•œ๋‹ค.(๋‘๊ฐœ ๊ตฌ๋ถ„ํ•  ํ•„์š” ์—†์ด var๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋˜์ง€๋งŒ ์ตœ์‹œ ๋ฒ„์ „์— ๋งž๋Š” ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด ๊ตฌ๋ถ„ํ•œ๋‹ค.)

  • ์ด๋ฏธ ํ•œ๋ฒˆ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋ฅผ ์ˆ˜์ •ํ•˜๊ณ ์ž ํ•  ๋•Œ์—๋Š” let์„ ๋‹ค์‹œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. let์€ ์ฒ˜์Œ ๋ณ€์ˆ˜๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•  ๋•Œ๋ฉด ์‚ฌ์šฉ๋œ๋‹ค.

#์ฒ˜์Œ์— const๋กœ ์„ ์–ธํ–ˆ๋‹ค๋ฉด ์ˆ˜์ • ๋ถˆ๊ฐ€๋Šฅ
let name = "๊น€์„œ์œจ";

name = "๊น€์ง€์œ ";

๋ณ€์ˆ˜์˜ ์„ ์–ธ๊ณผ ํ• ๋‹น์€ ๋ถ„๋ฆฌ๋  ์ˆ˜ ์žˆ๋‹ค.

let name;
name = "๊น€์„œ์œจ";
  • ๋ณ€์ˆ˜ ๋ช…์€ ์ค‘๋ณต์ด ์•ˆ๋ผ์ง€๋งŒ ๊ฐ’์˜ ์ค‘๋ณต์€ ๊ฐ€๋Šฅํ•œ๋‹ค.

Function

  • ํ•จ์ˆ˜๋ž€ ํ•˜๋‚˜์˜ ํŠน์ •ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์„ค๊ณ„๋œ ๋…๋ฆฝ์ ์ธ ๋ธ”๋ก์ด๋‹ค.
function ํ•จ์ˆ˜์ด๋ฆ„(){
	let hi = "์•ˆ๋…•ํ•˜์„ธ์š”";
	return hi;	
}
  • function ํ‚ค์›Œ๋“œ๋กœ ์‹œ์ž‘ํ•˜์—ฌ ํ•จ์ˆ˜ ์ด๋ฆ„์„ ์ง€์–ด์ฃผ๊ณ  ํ•จ์ˆ˜๋ฅผ ์•Œ๋ฆฌ๋Š” ์†Œ๊ด„ํ˜ธ(())๋ฅผ ์—ด๊ณ  ๋‹ซ๊ณ , ํ•จ์ˆ˜์˜ ์‹œ์ž‘์„ ์•Œ๋ฆฌ๋Š” ์ค‘๊ด„ํ˜ธ๋ฅผ ์—ด์–ด์ค€๋‹ค.

  • ์‹คํ–‰ํ•  ์ฝ”๋“œ๋ฅผ ์ค‘๊ด„ํ˜ธ์™€ ์ค„๊ด„ํ˜ธ ์‚ฌ์ด์— ์ž‘์„ฑํ•˜๊ณ  ํ•จ์ˆ˜์˜ body๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•˜๋ฉฐ ์ด ๋ถ€๋ถ„์— ๋“ค์—ฌ์“ฐ๊ธฐ๊ฐ€ ๋˜์–ด์žˆ๋‹ค.(ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ์žˆ๋Š” ์ฝ”๋“œ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ธฐ ์ข‹๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ํ•œ๋‹ค.)

  • return ํ•  ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด ์ž‘์„ฑํ•˜๊ณ  ์ค‘๊ด„ํ˜ธ๋ฅผ ๋‹ซ์•„์„œ ํ•จ์ˆ˜์˜ ์ž‘์„ฑ์ด ๋๋‚ฌ์Œ์„ ์•Œ๋ฆฐ๋‹ค.

ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ ๋งŒ์œผ๋กœ๋Š” ํ•จ์ˆ˜ ๋‚ด๋ถ€๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.

  • ํ•จ์ˆ˜ ์ด๋ฆ„์„ ๋ถ€๋ฆฌ์ง€ ์ „๊นŒ์ง€๋Š” ์•ˆ์— ์ •์˜ํ•œ ๋ณ€์ˆ˜๊ฐ€ ์ƒ์„ฑ๋˜์ง€๋„ ์•Š๊ณ  ๋™์ž‘ํ•˜์ง€๋„ ์•Š๋Š”๋‹ค.

  • ํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ˜ธ์ถœํ•˜์—ฌ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•จ์ˆ˜์ด๋ฆ„();

๋ชจ๋“  ํ•จ์ˆ˜๋Š” ๋ฐ˜ํ™˜์„ ํ•œ๋‹ค.

  • ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์„ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.
let result = noParameter();

console.log(result);
console.log(noParameter());
  • ๋ชจ๋“  ํ•จ์ˆ˜๊ฐ€ return ์„ ํฌํ•จํ•ด์•ผํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๊ณ  return ํ‚ค์›Œ๋“œ๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ์ด ๊ฒฝ์šฐ์—๋„ ํ•จ์ˆ˜๋Š” ๋ฌด์–ธ๊ฐ€๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.(ํ•จ์ˆ˜ ๋ฐ˜ํ™˜์„ ์ƒ๋žตํ•˜๋ฉด undefined๋ผ๋Š” ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.)

๋ฐ์ดํ„ฐ ๋ฐ›๊ธฐ

  • ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์ธ์ž๋กœ ๋ฐ›์€ ๋ณ€์ˆ˜์— ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋„ฃ์œผ๋ฉด ์•ˆ๋œ๋‹ค.
function alertSuccess(name){
	alert(name + "๋‹˜ ๋กœ๊ทธ์ธ ์„ฑ๊ณต!");
}

alertSuccess("๊น€์„œ์œจ");

//๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์ธ์ž๋กœ ๋ฐ›์€ ๋ณ€์ˆ˜์— ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋„ฃ์œผ๋ฉด ์•ˆ๋œ๋‹ค.
//์ธ์ž์— ์‹ค์ œ๋กœ ์–ด๋–ค ๋ฐ์ดํ„ฐ๊ฐ€ ์ „๋‹ฌ ๋ ์ง€๋Š” ํ˜ธ์ถœํ•  ๋•Œ ๊ฒฐ์ •ํ•œ๋‹ค.
function alertSuccess(name) {   
  let name = "wecode";
  alert(name + "๋‹˜ ๋กœ๊ทธ์ธ ์„ฑ๊ณต!"); 
}

๋งค๊ฐœ๋ณ€์ˆ˜(parameter) ์™€ ์ธ์ž(argument)

  • ํ•จ์ˆ˜๊ฐ€ ์™ธ๋ถ€์—์„œ ์ž…๋ ฅ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ํ•จ์ˆ˜ ์ด๋ฆ„ ์˜† ์†Œ๊ด„ํ˜ธ ์•ˆ์— ์ น๊ณ  ์ด๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜, ์ฆ‰ parameter๋ผ๊ณ  ํ•˜๋ฉฐ ์™ธ๋ถ€๋กœ ๋ถ€ํ„ฐ ๋“ค์–ด์˜ค๋Š” ๊ฐ’์„ ๋‹ด์•„ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜๋Š” ๋ณ€์ˆ˜์˜ ์—ญํ• ์„ ํ•œ๋‹ค.

  • ๊ทธ ์ž๋ฆฌ์— ๋“ค์–ด๊ฐˆ ์‹ค์งˆ์ ์ธ ๊ฐ’์„ argument๋ผ๊ณ  ํ•œ๋‹ค.

//name -> parameter
function getName(name){
	return name + "๋‹˜";
}

//๊ฐœ๋ฐœ์ž -> argument
let result = getName("๊ฐœ๋ฐœ์ž");
console.log(result);
-> ๊ฐœ๋ฐœ์ž๋‹˜

๋งค๊ฐœ๋ณ€์ˆ˜

  • ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๋ฉด์„œ ํ•จ์ˆ˜ ์„ ์–ธ์‹์˜ ๊ด„ํ˜ธ ์•ˆ์— ์–ด๋–ค ๋ณ€์ˆ˜๋ช…์„ ์“ฐ๋ฉด ๊ทธ๊ฒƒ์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ ๊ทธ ์ด๋ฆ„์ฒ˜๋Ÿผ ์‹ค์ œ๋กœ ํ•จ์ˆ˜ ์•ˆ์ชฝ์—์„œ ๋ณ€์ˆ˜์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๊ฒŒ๋œ๋‹ค.

  • ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ ๊ฐ’์„ ์ „๋‹ฌ๋ฐ›๊ฒŒ ๋˜๋ฉด ๋งค๊ฐœ๋ณ€์ˆ˜์— ๊ฐ’์ด ์ •์˜๋œ๋‹ค.

์ธ์ž

  • ์–ด๋–ค ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด์„œ ํ˜ธ์ถœ๋ฌธ์˜ ๊ด„ํ˜ธ์•ˆ์— ์–ด๋–ค ๊ฐ’ ๋˜๋Š” ๊ฐ’์ด ์ •์˜๋œ ๋ณ€์ˆ˜๋ฅผ ์“ฐ๋ฉด ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ์ธ์ž๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

  • ํ•จ์ˆ˜์—์„œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ ์–ด๋‘” ์ƒํƒœ๋ผ๋ฉด ํ˜ธ์ถœ์‹œ ์ธ์ž๋กœ ์ „๋‹ฌํ•œ ๊ฐ’์€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋œ๋‹ค.

// doubleNumber ํ•จ์ˆ˜ ์„ ์–ธ์‹
function doubleNumber(myNumber) { // <- ํ˜ธ์ถœ์‹œ ์ „๋‹ฌ๋ฐ›์€ ๊ฐ’์„ myNumber ๋ผ๋Š” ๋ณ€์ˆ˜๋ช…์œผ๋กœ ํ•จ์ˆ˜ ์•ˆ์ชฝ์—์„œ ์‚ฌ์šฉ
  let myResult = myNumber * 2
  return myResult
}

// doubleNumber ํ•จ์ˆ˜ ํ˜ธ์ถœ๋ฌธ
doubleNumber(3); // <- doubleNumber๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด์„œ ๊ฐ’ 3์„ ์ „๋‹ฌํ•œ๋‹ค.

let someNumber = 42
doubleNumber(someNumber); // <- doubleNumber๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด์„œ ๊ฐ’ 42๋ฅผ ์ „๋‹ฌ

์—ฌ๋Ÿฌ ์ธ์ž

  • ํ•จ์ˆ˜์— ์ธ์ž๊ฐ€ ํ•œ๊ฐœ๊ฐ€ ์•„๋‹Œ ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
function alertSuccess(month, name) {
  alert(month + "์›”์˜ ๋‹น์ฒจ์ž๋Š” " + name + "์ž…๋‹ˆ๋‹ค.");
}

alertSuccess("3", "๊น€๊ฐœ๋ฐœ");

๋ฐ์ดํ„ฐ ๋ฐ˜ํ™˜ํ•˜๊ธฐ

  • ์ธ์ž๋ฅผ ๋ฐ”๊ฟ” ํ•จ์ˆ˜๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

function getTax(price) {
  return price * 0.1;
}

function calculateTotal(price) {
  return price + getTax(price);
}

var result = calculateTotal(3500);
#ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๋Š” ์‹œ์ ์€ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ–ˆ์„ ๊ฒฝ์šฐ์ด๋‹ค.
console.log(result);

math expression

let num = 1;
num ++;
console.log(num);
-> 2

let num = 1;
let newNum = num;
console.log(num);
console.log(newNum);
->2
->1

//์œ„์˜ ์Šคํ…์„ ํ’€์–ด ์ž‘์„ฑํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค
let num = 1;
let newNum = num;
num++;

//newNumdpeh 2๋ฅผ ํ• ๋‹นํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•œ๋‹ค.
let newNum = ++num;

//ํ’€์–ด์„œ ์ž‘์„ฑํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค
let num = 1;
num++;
let newNum = num;

ํ…์ŠคํŠธ ๋ฌธ์ž์˜ ์—ฐ๊ฒฐ

  • ๋ฉ”์„ธ์ง€๋ฅผ alert์— ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ํ•ญ์ƒ ๋ฐ”๋€Œ๋Š” ํ…์ŠคํŠธ๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ ๋ณ€์ˆ˜์— ๋‹ด์•„ alert๋ฅผ ๋„์šด๋‹ค.
let userName = "๊น€์„œ์œจ";
alert(userNmae);

ํ…์ŠคํŠธ + ํ…์ŠคํŠธ or ํ…์ŠคํŠธ + ์ˆซ์ž

  • ํ…์Šค๋ฅผ ์กฐํ•ฉํ•  ๋•Œ๋Š” + ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ํ…์ŠคํŠธ์™€ ๋ณ€์ˆ˜๋ฅผ ์กฐํ•ฉํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ˆซ์ž์™€ ํ…์ŠคํŠธ๋Š” ์Œ๋”ฐ์˜ดํ‘œ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.

  • string๊ณผ number ํ˜•์„ ๋”ํ•˜๋ฉด ํ•ญ์ƒ stringํ˜•์œผ๋กœ ๋ณ€ํ™˜๋œ๋‹ค.

  • ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ํƒ€์ž…์ธ string๊ณผ number๋Š” ์„œ๋กœ ๋”ํ•˜๊ฑฐ๋‚˜ ๋บ„ ์ˆ˜ ์—†์ง€๋งŒ javascript์—์„œ๋Š” ์˜ค๋ฅ˜๋ฅผ ๋‚ด์ง€ ์•Š๊ณ  ๋”ํ•˜๊ฒŒ ๋œ๋‹ค.

  • ์ด๋Ÿฐ์ ์ด ์œ ์—ฐํ•จ๊ณผ ๋™์‹œ์— ์—๋Ÿฌ๋ฅผ ๋‚ผ ์—ฌ์ง€๊ฐ€ ์žˆ๋Š” ๋ถ€๋ถ„์ด๋‹ค.

if ๋ฌธ

let answer = 3 + 3;

if (answer > 5){
	alert("5๋ณด๋‹ค ํฐ ์ˆซ์ž");
}
  1. answer๋ผ๋Š” ๋ณ€์ˆ˜์— 3+3 ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๊ฐ’์ด ์ €์žฅ๋œ๋‹ค.

  2. if ์šฐ์ธก () ๊ด„ํ˜ธ ์•ˆ์˜ ์กฐ๊ฑด์ด ๋งž์œผ๋ชจ {} ๊ด„ํ˜ธ ์•ˆ์— ์žˆ๋Š” ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋œ๋‹ค.

์กฐ๊ฑด์ด ๋งž์ง€ ์•Š์„ ๊ฒฝ์šฐ

  • ์œ„์—์„œ ๋ถ€ํ„ฐ ์ฐจ๋ก€๋กœ ์กฐ๊ฑด์„ ์ฒดํฌํ•˜๋ฉฐ ๋‚ด๋ ค์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์กฐ๊ฑด๋ฌธ์€ ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค.
let answer = 3+3;

if (answer > 5){
	alert("5๋ณด๋‹ค ํฐ ์ˆซ์ž");
} else{
	alert("5๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ˆซ์ž");
}

if (answer > 15) {
  alert("15๋ณด๋‹ค ํฐ ์ˆซ์ž!");
} else if (answer > 10) {
  alert("10๋ณด๋‹ค ํฐ ์ˆซ์ž!");
} else if (answer > 5) {
  alert("5๋ณด๋‹ค ํฐ ์ˆซ์ž!");
} else {
  alert("5๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ˆซ์ž!");
}

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

  • === ๋Š” ๊ฐ’๊ณผ ํƒ€์ž…์ด ๊ฐ™์€์ง€๋ฅผ ๋น„๊ตํ•˜๋Š” equality operator(๋™๋“ฑ ๋น„๊ต ์—ฐ์‚ฐ์ž)์ด๋‹ค.

  • string ๋ผ๋ฆฌ ๋น„๊ตํ• ์ˆ˜๋„ ์žˆ๊ณ , ์ˆซ์ž์™€ string์„ ๋น„๊ตํ•  ์ˆ˜ ๋„ ์žˆ์œผ๋ฉฐ ๋™๋“ฑ ๋น„๊ต ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋” ํฌ๊ฑฐ๋‚˜ ์ž‘์Œ ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋น„๊ต๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ๋น„๊ต์—ฐ์‚ฐ์ž๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ๋น„๊ต์—ฐ์‚ฐ์ž ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ ์˜ค๋ฅธ์ชฝ ๋‚˜๋ˆ ์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.

  • !== ๋Š” ๊ฐ™์ง€ ์•Š์Œ์„ ๋น„๊ตํ•œ๋‹ค.

  • ==๋Š” ๋™๋“ฑ ๋น„๊ต์—ฐ์‚ฐ์ž๋กœ ===๋ณด๋‹ค ๋น„๊ต์  ๋Š์Šจํ•œ ๋น„๊ต์—ฐ์‚ฐ์ž์ด๋‹ค.

if (3=="3"){
	return true;
}

-> true

if ("3" === 3) {
  return false;
}

-> false

๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž

  • ๊ฒฐ๊ณผ๋Š” ๊ฐ™์€๋ฐ ์กฐ๊ฑด๋ฌธ๋งŒ ๋‹ค๋ฅด๊ฒŒ ์ž‘์„ฑํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ or ์— ํ•ด๋‹นํ•˜๋Š” || ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
const answer = prompt("์–ด๋””์‚ฌ์„ธ์š”?");

if (answer === "์„ ๋ฆ‰" || answer === "๊ฐ•๋‚จ" || answer === "์—ญ์‚ผ") {
  alert("๊ฐ€๊นŒ์šฐ์‹œ๋„ค์š”!");
} else if (answer === "์„์ง€๋กœ") {   
  alert("์กฐ๊ธˆ ๋ฉ€๋ฆฌ ์‚ฌ์‹œ๋„ค์š”."); 
} else {
 alert("๊ฑฐ๊ธด ์–ด๋””์ธ๊ฐ€์š”?");
}
  • ๋ชจ๋‘ ์ถฉ์กฑํ•ด์•ผํ•˜๋Š” ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ and ์—ฐ์‚ฐ์ž์ธ &&์„ ์‚ฌ์šฉํ•œ๋‹ค.
const hobby = prompt("์ทจ๋ฏธ๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”?");
const morning = prompt("์•„์นจํ˜• ์ธ๊ฐ„์ธ๊ฐ€์š”?");

if (hobby === "์ถ•๊ตฌ" && morning === "๋„ค") {
  alert("์กฐ๊ธฐ์ถ•๊ตฌํšŒ๋ฅผ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.");
} else {
  alert("๋ฌด์Šจ ๋™์•„๋ฆฌ๊ฐ€ ์ข‹์„์ง€ ์ƒ๊ฐํ•ด๋ณผ๊ฒŒ์š”.");
}

Array(๋ฐฐ์—ด)

  • ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ช‡์ฒœ๊ฐœ์˜ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜์— ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ–๊ณ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.
var ๋ณ€์ˆ˜๋ช… = [];

let anything = ["๋Œ€์ „", 1987, ["ํ•˜๋‚˜", "๋‘˜", 3]];
  • ์š”์†Œ๋Š” string number, array์˜ ํ˜•ํƒœ๋กœ ๋ชจ๋‘ ์กด์žฌ ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ๋ฐฐ์—ด์˜ ์š”์†Œ๋Š” ์ˆœ์„œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๊ณ , index๋Š” 1์ด ์•„๋‹Œ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.

  • ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

๋ฐฐ์—ด์ด๋ฆ„[index]
  • ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐฐ์—ด์ด๋ฆ„.length ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  • ์ตœ๋Œ€, ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด Math ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

var numbers = [ 19, 1, 3, 37, 8 ];
 
Math.max.apply(null, numbers); // 37
Math.min.apply(null, numbers); // 1
  • apply ๋ฉ”์†Œ๋“œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ชจ๋“  ๊ฐ์ฒด์— ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด์žฅ๋˜์–ด์žˆ๋Š” ๋ฉ”์†Œ๋“œ์ด๋‹ค. ์ฒซ๋ฒˆ์งธ ์ธ์ž๋กœ this๋กœ ์‚ฌ์šฉ๋  ๊ฒ์ฒด, ๋‘๋ฒˆ์งธ ์ธ์ž๋กœ ํ•จ์ˆ˜์— ์ „๋‹ฌ๋  ์ธ์ˆ˜์˜ ์ง‘ํ•ฉ์„ ๋„˜๊ฒจ์ค€๋‹ค.

  • Math.max ๋Š” ์›๋ž˜ ์ธ์ž๋กœ ๋‘ ์ˆซ์ž๋ฅผ ๋ฐ›์•„์„œ ๋‘˜ ์ค‘ ํฐ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š”๋ฐ, apply ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ธ์ž๋กœ ๋ฐฐ์—ด์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๊ฒŒ๋œ๋‹ค.

  • ํ•˜์ง€๋งŒ ๋ฐฐ์—ด์ด ํฐ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ์œผ๋กœ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š”๋ฐ ๊ทธ๋Ÿด ๊ฒฝ์šฐ reduce ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

var numbers = [ 19, 1, 3, 37, 8 ];
 
//์ตœ๋Œ€๊ฐ’
var max = numbers.reduce( function (prev, cur) { 
    return prev > cur ? prev:cur;
});
 
//์ตœ์†Œ๊ฐ’
var min = numbers.reduce( function (prev, cur) { 
    return prev > cur ? cur:prev;
});
  • reduce ํ•จ์ˆ˜๋Š” ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํƒ์ƒ‰ํ•˜๋ฉฐ ์ค„์—ฌ๋‚˜๊ฐ€๋ฉฐ, ์ตœ์ข…์ ์œผ๋กœ๋Š” ๋‹จ ํ•˜๋‚˜ใ…ข ์š”์†Œ๋งŒ์ด ๋‚จ๊ฒŒ๋œ๋‹ค.

  • ๊ฐ’์„ ์ค„์—ฌ๋‚˜๊ฐ€๋Š” ๊ธฐ์ค€์€ reduce ๋ฉ”์†Œ๋“œ์˜ ์ฒซ๋ฒˆ์งธ ์ธ์ž์ธ ์ฝœ๋ฐฑํ•จ์ˆ˜๋กœ ๊ฒฐ์ •๋˜๋ฉฐ ์ดˆ๊ธฐ๊ฐ’์€ ๋‘๋ฒˆ์งธ ์ธ์ž์— ์…‹ํŒ…ํ•ด์ค„ ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋Š” ์ƒ๋žต์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ์ฝœ๋ฐฑํ•จ์ˆ˜์—์„œ ๋‹ค์‹œ ๋‘ ๊ฐœ์˜ ์ธ์ž prev์™€ cur๊ฐ€ ์ „๋‹ฌ๋˜์—ˆ๋‹ค. ๋ณธ๋ž˜ ์ด ์ฝœ๋ฐฑํ•จ์ˆ˜๋Š” 4๊ฐœ์˜ ์ธ์ž๋ฅผ ์ทจํ•˜์ง€๋งŒ ๋‘๊ฐœ๋Š” ์ƒ๋žต๊ฐ€๋Šฅํ•˜๋‹ค. ์—ฌ๊ธฐ์„œ prev๋Š” ๋ˆ„์ ๊ฐ’์ด๋‹ค. ์ฝœ๋ฐฑ์˜ ๋ฐ˜ํ™˜๊ฐ’์„ ๊ณ„์†ํ•ด์„œ ์ด ์ธ์ž์— ์ €์žฅํ•œ๋‹ค. ๋˜ํ•œ cur์€ ํ˜„์žฌ ๊ณ„์‚ฐ๋˜๊ณ  ์žˆ๋Š” ๋ฐฐ์—ด ์š”์†Œ์ด๋‹ค.

  • ๋ˆ„์ ๊ฐ’ prev๋Š” cur ์ด์ „์˜ ๋ฐฐ์—ด ์š”์†Œ ์ค‘ ์ตœ๋Œ€๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ์ด๋ฅผ cur๊ณผ ๋น„๊ตํ•˜์—ฌ ํฐ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ธ ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฐ์‹์œผ๋กœ ๊ฐ„๋‹จํžˆ ์ตœ๋Œ€, ์ตœ์†Œ๊ฐ’์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์š”์†Œ ์ถ”๊ฐ€

  • ์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผํ•ด ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
cities[0] = "์„œ์šธ"; // ["์„œ์šธ"]
cities[1] = "๋Œ€์ „"; // ["์„œ์šธ", "๋Œ€์ „"]
cities[2] = "๋Œ€๊ตฌ"; // ["์„œ์šธ", "๋Œ€์ „", "๋Œ€๊ตฌ"]
cities[5] = "์ œ์ฃผ๋„";

-> ["์„œ์šธ", "๋Œ€์ „", "๋Œ€๊ตฌ", undefined, undefined, "์ œ์ฃผ๋„"]
  • push(), unshift() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. push๋Š” ๋ฐฐ์—ด์˜ใ… ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  unshift๋Š” ๋ฐฐ์—ด์˜ ๋งจ ์•ž๋ถ€๋ถ„์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
let cities = [];
cities.push("๊ฒฝ์ฃผ", "์ „์ฃผ");
cities.unshift("์ธ์ฒœ");

์š”์†Œ ์ œ๊ฑฐ

  • pop()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉฐ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
cities.pop();
console.log(cities)

for ๋ฌธ

  • for๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์›ํ•˜๋Š” ๋งŒํผ ๋ฐ˜๋ณต์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
for (๋ฐ˜๋ณต์กฐ๊ฑด) {
   //๋ฐ˜๋ณต์กฐ๊ฑด์ด ๋งž์œผ๋ฉด ์‹คํ–‰ํ•  ์ฝ”๋“œ
}

let count = 1;
//0๋ถ€ํ„ฐ 5๊นŒ์ง€ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋ฉฐ for๋ฌธ์„ ์‹คํ–‰ํ•œ๋‹ค.(์‹œ์ž‘๊ฐ’, ๋๊ฐ’, ์ฆ๊ฐ€๊ฐ’)
for (let i = 0; i <= 5; i++) {    
  count = count + 1;
}

//for๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ
const home = "๋Œ€์ „";
let cities = ["์„œ์šธ", "๋Œ€์ „", "๋Œ€๊ตฌ", "๋ถ€์‚ฐ", "๊ด‘์ฃผ", "์ œ์ฃผ๋„"];


for (let i = 0; i < cities.length; i++) {
   if (cities[i] === home) {
     console.log("์•„, "+ cities[i] +" ์‚ฌ์‹œ๋Š”๊ตฐ์š”");
   }
}

๋ฐ์ดํ„ฐ ํƒ€์ž…

  • ๋‹ค์Œ 6๊ฐ€์ง€์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ์žˆ๋‹ค.

    1) undefined
    2) null
    3) boolean (true/false)
    4) ์ˆซ์ž
    5) ๋ฌธ์ž์—ด
    6) ๊ฐ์ฒด (object)

typeof ์—ฐ์‚ฐ์ž

  • typeof ์—ฐ์‚ฐ์ž๋ฅผ ์ ์šฉํ•˜๋ฉด ๋‹ค์Œ ๋ฌธ์ž์—ด ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

    1) "undefined": ์ •์˜๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜
    2) "boolean"
    3) "string"
    4) "number"
    5) "object": ํ•จ์ˆ˜๋ฅผ ์ œ์™ธํ•œ ๊ฐ์ฒด ๋˜๋Š” "object"
    6) "function"

let msg = "message";
console.log(typeof msg);
console.log(typeof 100);
  • ๋ฐฐ์—ด์€ ํ™•์žฅ๋œ ๊ฐ์ฒด๋กœ object์ด๋‹ค.

undefined

  • ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๋ณ€์ˆ˜์—๋Š” undefined๊ฐ€ ํ• ๋‹น๋œ๋‹ค.
let msg;
console.log(msg === undefined); //true

null

  • ๋ฐ์ดํ„ฐํƒ€์ž…์ค‘ ํ•˜๋‚˜์ด์ง€๋งŒ typeof๋กœ ํ™•์ธ์‹œ object๋กœ ๋‚˜์˜จ๋‹ค.(๋นˆ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ)

boolean

  • true / false ๋‘๊ฐ€์ง€ ๊ฐ’์ด์žˆ์œผ๋ฉฐ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด voolean์œผ๋กœ ๋ณ€ํ™˜๋˜๋Š” ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • true๋กœ ๋ณ€ํ™˜๋˜๋Š” ๊ฐ’

    1) ๋ฌธ์ž์—ด: ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋ชจ๋“  ๋ฌธ์ž์—ด
    2) ์ˆซ์ž: 0์ด ์•„๋‹Œ ๋ชจ๋“  ์ˆซ์ž
    3) ๊ฐ์ฒด: ๋ชจ๋“  ๊ฐ์ฒด ({}, [] ๋ชจ๋‘ ํฌํ•จ)

  • false๋กœ ๋ณ€ํ™˜๋˜๋Š” ๊ฐ’

1) ๋ฌธ์ž์—ด: "" (๋นˆ๋ฌธ์ž์—ด)
2) ์ˆซ์ž: 0, NaN
3) ๊ฐ์ฒด: null
4) undefined

๋ฌธ์ž

  • ์Œ๋”ฐ์˜ดํ‘œ๋‚˜ ํ™‘๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ผ ๋ชจ๋“  ํ‘œํ˜„์„ ์˜๋ฏธํ•œ๋‹ค.

์ˆซ์ž

  • ๋”ฐ์˜ดํ‘œ ์—†์ด ์ˆซ์ž๋งŒ ์“ฐ์ด๋Š” Numberํ˜•

๊ฐ์ฒด

  • ๊ฐ์ฒด๋Š” ํ‚ค์™€ ๊ฐ’์˜ ์กฐํ•ฉ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ์ด๋ฉฐ ์ค‘๊ด„ํ˜ธ๋กœ ๊ฐ์‹ธ์ง„ key-value ์Œ์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ–๋Š”๋‹ค.

String

  • ๋ณ€์ˆ˜์— string ํ˜•์˜ ๊ฐ’์„ ํ• ๋‹นํ•˜๊ฒŒ ๋˜๋ฉด string ํ˜•์ด ์ œ๊ณตํ•˜๋Š” ๋ชจ๋“  ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

๋Œ€์†Œ๋ฌธ์ž ๋ฐ”๊พธ๊ธฐ

let lastName = 'Yeri Kim';
let upperLastName = lastName.toUpperCase();
let lowerLastName = lastName.toLowerCase();

console.log(lastName);
console.log(upperLastName);
console.log(lowerLastName);

->
Yeri Kim
YERI KIM
yeri kim

๋ฌธ์ž ๊ธธ์ด

  • string๋„ length๋ผ๋Š” ์†์„ฑ์œผ๋กœ ๊ธธ์ด๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.(Number ํ˜•์€ ๋ถˆ๊ฐ€๋Šฅ)
if (phoneNumber.length !== 10 &&  phoneNumber.length !== 11) {
  alert("ํฐ ๋ฒˆํ˜ธ ์ œ๋Œ€๋กœ ์ž…๋ ฅํ•˜์…จ๋‚˜์š”?");
}

let name = prompt("์„ฑํ•จ์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”");

if (name.length === 2) {
  alert("์™ธ์ž์ด์‹œ๊ตฐ์š”! ์ด๋ฆ„์ด ์ด์˜๋„ค์š”.");
} else if (name.length === 1) {
  alert("์ œ๋Œ€๋กœ ์ž…๋ ฅํ•˜์…จ๋‚˜์š”?");
} else if (name.length === 3) {
  alert("๋ฉ‹์ง„ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.");
}

๋ฌธ์ž์—ด ์ฐพ๊ธฐ

  • indexOf() ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด์— ํŠน์ • ๋ฌธ์ž์—ด์ด ๋“ค์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ๋งŒ์•ฝ ์žˆ๋‹ค๋ฉด ๋ช‡๋ฒˆ์งธ ์ˆœ์„œ์— ํ•ด๋‹น ๋ฌธ์ž์—ด์ด ์žˆ๋Š” ์•Œ๋ ค์ค€๋‹ค. ํ•ด๋‹น ๋ฌธ์ž์—ด์ด ์—†๋‹ค๋ฉด -1์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
//"ํ”„๋กœ๋ž˜๋ฐ" ์ด๋ผ๋Š” ์˜คํƒ€๋ฅผ "ํ”„๋กœ๊ทธ๋ž˜๋ฐ" ์ด๋ผ๊ณ  ๋ฐ”๊พธ์–ด ์ฃผ๋Š” ์ฝ”๋“œ
let info = "JavaScript๋Š” ํ”„๋กœ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค.";
let firstChar = info.indexOf("ํ”„๋กœ๋ž˜๋ฐ"); 

console.log(info, firstChar);

if (firstChar !== -1) { 
  info = info.slice(0, firstChar) + "ํ”„๋กœ๊ทธ๋ž˜๋ฐ" + info.slice(firstChar+4, info.length); 
}
console.log(info);

slice

slice(์ž˜๋ฆด ์‹œ์ž‘์œ„์น˜, ์ž˜๋ฆด ๋์œ„์น˜)
  • ํ…์ŠคํŠธ๋ฅผ ์ž˜๋ผ์ฃผ๋Š” ํ•จ์ˆ˜๋กœ ์ž˜๋ฆด ๋ ์œ„์น˜๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๊ณ  ์ง์ „์— ๋Š์–ด์ค€๋‹ค

String, Number์˜ ๋ณ€ํ™˜

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์˜ ํŠน์ง• ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๋Š” ์ ์ด๋‹ค. ํƒ€์ž… ์ฒดํฌ๊ฐ€ ์‰ฝ๋‹ค๋Š” ๊ฒƒ์€ ๋‹ค๋ฅธ ์–ธ์–ด๋ณด๋‹ค ํŽธํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ฝ”๋“œ๋ฅผ ์ž˜๋ชป์งœ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋‚  ๊ฐ€๋Šฅ์„ฑ๋„ ์žˆ๋‹ค.

  • ์ž๋ฐ”๋‚˜ c์–ธ์–ด ๋“ฑ์—์„œ๋Š” ๋ณ€์ˆ˜์— ์–ด๋–ค ๊ฐ’์„ ํ• ๋‹นํ•ด์„œ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ํ™•์ •๋˜๋ฉด ๊ทธ ํ›„์— ๋‹ค๋ฅธ ํƒ€์ž…์˜ ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์—†์ง€๋งŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ์ˆซ์ž์™€ ๋ฌธ์ž์—ด์˜ ๋ง์…ˆ๋„ ๊ฐ€๋Šฅํ•˜๋ฉฐ ํ•˜๋‚˜๋ผ๋„ string์ด ์žˆ์œผ๋ฉด ๋ฌธ์ž์—ด๋กœ์„œ ํ•ฉ์ณ์ค€๋‹ค.(-๋Š” ๋ถˆ๊ฐ€๋Šฅ)

  • string์— - ๋Š” ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์–‘์ชฝ์˜ ๊ฐ’์„ ๋ชจ๋‘ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•ด์„œ ๊ณ„์‚ฐํ•ด์ค€๋‹ค.

  • Number ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ String์—์„œ Number๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.(Numberํ•จ์ˆ˜ ๋ง๊ณ  parseInt, parseFloat๋„ ์žˆ๋‹ค.)

var birthYearInput = "2000";
console.log(typeof birthYearInput);

var numberBirthYear = Number(birthYearInput);
console.log(typeof numberBirthYear);

parseInt("1.901");
parseFloat("1.901");
Number("1.901");
parseInt("200") + 1;

var numberAsNumber = "1234"; 
var numberAsString = numberAsNumber - 0;

console.log(numberAsNumber, typeof numberAsNumber);
console.log(numberAsString, typeof numberAsString);
  • Numberํ˜•์—์„œ String ํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•œ๋‹ค.
var numberAsNumber = 1234; 
var numberAsString = numberAsNumber.toString();

console.log(numberAsNumber, typeof numberAsNumber);
console.log(numberAsString, typeof numberAsString);

or

var numberAsNumber = 1234; 
var numberAsString = 1234 + "";

console.log(numberAsNumber, typeof numberAsNumber);
console.log(numberAsString, typeof numberAsString);

๋‚ ์งœ์™€ ์‹œ๊ฐ„

  • ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ์ €์žฅํ•˜๊ณ  ๋ณด์—ฌ์ค„ ๋•Œ ๋‚ ์งœ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  • ๋‚ ์งœ ๊ฐ์ฒด๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์‰ฝ๊ฒŒ ์‹œ๊ฐ„๊ณผ ๋‚ ์งœ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‚ ์งœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋Š” ๋‹ค์Œ๊ณผ๊ฐ™์ด new ์—ฐ์‚ฐ์ž ๋‹ค์Œ์— Date ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

var rightNow = new Date();
console.log(rightNow);

-> 2019-02-18T00:45:06.562Z
  • ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ํ‘œํ˜„ํ•˜๋Š” ๋ฒ•์ด์ง€๋งŒ console.log๋กœ ์ฐํžŒ ํ‘œํ–”์€ ์‚ฌ๋žŒ์ด ์ฝ๊ธฐ ์ข‹์€ ํ‘œํ˜„์ผ ๋ฟ ์‹ค์ œ๋กœ ์ฝ”๋”ฉํ•  ๋•Œ๋Š” ์ด ํ‘œํ˜„์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ์–ด๋–ฆ๊ฒŒ ํ‘œํ˜„๋˜์—ˆ๋Š”์ง€๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค.

  • GMT์ด๋ž€ Greenwhich Mean Time์˜ ์ค„์ž„๋ง์ด๋ฉฐ ์ปดํ“จํ„ฐ ์–ธ์–ด์—์„œ๋Š” GMT ๊ธฐ์ค€์œผ๋กœ ์‹œ๊ฐ„์„ ์•Œ๋ ค์ค€๋‹ค. GMT๋Š” ๊ธฐ์ค€์ด ๋˜๋Š” ์‹œ๊ฐ„์ด๋ฉฐ ์œ„ ์‚ฌ์ง„์€ GMT ๊ธฐ์ค€์œผ๋กœ 6์‹œ๊ฐ„์ด ๋น ๋ฅด๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

ํ•œ๊ตญ : GMT+0900 (ํ•œ๊ตญ ํ‘œ์ค€์‹œ)

  • new Date()๋ฅผ ํ†ตํ•ด์„œ ํ˜„์žฌ ์‹œ๊ฐ„์„ ๊ฐ€์ ธ์˜จ ๋‚ ์งœ ํฌ๋งท์„ ์„ค์ •ํ•˜์—ฌ ์›น ์‚ฌ์ดํŠธ์— ๋ณด์—ฌ์ค„ ์ˆ˜์žˆ๋‹ค.
์˜ˆ) 2์›” 18์ผ ์›”์š”์ผ 19:45
  • Date ๊ฐ์ฒด๋กœ ํ˜„์žฌ ์‹œ๊ฐ„์„ ๊ฐ€์ ธ์šด ํ›„ Date๊ฐ์ฒด๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ํ•จ์ˆ˜๋กœ ๊ฐ ๋‚ ์งœ, ์‹œ๊ฐ„์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
//์‹œ๊ฐ„์ด ํ๋ฅธ๋‹ค๊ณ  ํ•ด์„œ rightNow ์— ๋‹ด๊ธด ์‹œ๊ฐ„ ๊ฐ’์ด ๋ณ€ํ•˜์ง€ ์•Š์œผ๋ฉด ์ฒซ๋ฒˆ์งธ ์ค„์ด ์‹คํ–‰๋˜๋Š” ์ˆœ๊ฐ„์˜ ํ˜„์žฌ ์‹œ๊ฐ„์ด ๋‹ด๊ธด๋‹ค.
let rightNow = new Date();
let year = rightNow.getFullYear();
let month = rightNow.getMonth()+1; //getMonth ํ•จ์ˆ˜๋กœ ๊ฐ’์„ ๋ฐ›์„ ๋•Œ ํ˜„์žฌ ๋‹ฌ๋ณด๋‹ค 1 ์ž‘์€ ๊ฐ’์ด ๋ฐ˜ํ™˜๋œ๋‹ค.
let date = rightNow.getDate();
let day = rightNow.getDay();
let currentHour = rightNow.getHours();
let currentMin = rightNow.getMinutes()
  • new Date()๊ฐ€ ๋ฐ˜ํ™˜ํ•œ rightNow๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ Date ํƒ€์ž…์ด ๊ฐ–๊ณ ์žˆ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐ’์„ ๋ฐ›์•„์˜จ๋‹ค.

getTime

let rightNow = new Date();
let time = rightNow.getTime();
  • getTime ๋ฉ”์„œ๋“œ๋กœ ๋‚ ์งœ์˜ ๋ฐ€๋ฆฌ์ดˆ ํ‘œํ˜„์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์˜ค๋Š˜ ์ง€๊ธˆ์˜ ์‹œ๊ฐ„์ด ๋ฐ€๋ฆฌ์ดˆ๋กœ ํ‘œํ˜„๋œ๋‹ค.(๊ธฐ์ค€์ด ๋˜๋Š” ์ผ์ž๋Š” 1970๋…„ 1์›” 1์ผ์ด๋‹ค.)

  • getTime ํ•จ์ˆ˜๋กœ ๋ฐ˜ํ™˜๋œ ์ˆซ์ž๋กœ ๋น„๊ต ์—ฐ์‚ฐ์„ ํ†ตํ•ด ์–ธ์ œ๊ฐ€ ๋” ๊ณผ๊ฑฐ์ธ์ง€ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค.

ํŠน์ • ๋‚ ์งœ์˜ Date

  • ํŠน์ • ๋‚ ์งœ๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋„˜๊ฒจ์ฃผ๋ฉด ํ•ด๋‹น ๋‚ ์งœ์˜ Date๋ฅผ ๋ฐ˜ํ™˜ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
let date1 = new Date('December 17, 2019 03:24:00');
let date2 = new Date('2019-12-17T03:24:00');
let date3 = new Date(2019, 5, 1);

Number

  • ๊ฐ ๋ถ„์•ผ๋งˆ๋‹ค ๋” ์ „๋ฌธ์ ์œผ๋กœ ์จ์•ผํ•˜๋Š” ํ•จ์ˆ˜๋“ค์ด ์žˆ์ง€๋งŒ, ์–ด๋–ค ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋”๋ผ๋„ ๊ธฐ๋ณธ์ ์ธ event, String, Number ๊ด€๋ จ ํ•จ์ˆ˜๋“ค์€ ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

๋ฐ˜์˜ฌ๋ฆผ / ์˜ฌ๋ฆผ / ๋‚ด๋ฆผ ํ•จ์ˆ˜

//๋ฐ˜์˜ฌ๋ฆผ
console.log(Math.round(2.5));
console.log(Math.round(2.49));
console.log(Math.round(2));
console.log(Math.round(2.82))

//์˜ฌ๋ฆผ
console.log(Math.ceil(2.5));
console.log(Math.ceil(2.49));
console.log(Math.ceil(2));
console.log(Math.ceil(2.82));

//๋‚ด๋ฆผ
console.log(Math.floor(2.5));
console.log(Math.floor(2.49));
console.log(Math.floor(2));
console.log(Math.floor(2.82));

๋žœ๋ค ํ•จ์ˆ˜

var randomNumber = Math.random();
console.log(randomNumber);
  • 0.0000000000000000์—์„œ 0.9999999999999999 ์‚ฌ์ด์˜ ๊ฐ’์—์„œ ๋žœ๋ค ์ˆ˜๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ. ๊ฐœ๋ฐœ์ž๊ฐ€ ์›ํ•˜๋Š” ๋ฒ”์œ„์˜ ๋žœ๋˜ ํ•จ์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
var randomNumber = Math.random();\
//floor() ๋Š” ์ฃผ์–ด์ง„ ์ˆซ์ž์™€ ๊ฐ™๊ฑฐ๋‚˜ ๋” ์ž‘์€ ์ •์ˆ˜ ์ค‘์—์„œ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
console.log(Math.floor(randomNumber*10));
  • randomNumber*10 ์˜ ๊ฐ’์€ 1์˜ ์ž๋ฆฌ์ˆ˜์— ์—„์ฒญ ๊ธด ์†Œ์ˆ˜์ž๋ฆฌ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์ง€๋งŒ, ์†Œ์ˆ˜์ž๋ฆฌ๋Š” ๋‹ค ๋ฒ„๋ฆฌ๋„๋ก ๋‚ด๋ฆผ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 0~10 ์‚ฌ์ด์˜ ๋žœ๋ค ์ˆ˜๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์ตœ๋Œ€๊ฐ’์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Math.random() ์ตœ๋Œ€๊ฐ’, ์ตœ์†Œ๊ฐ’์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” (Math.random() (์ตœ๋Œ€๊ฐ’-์ตœ์†Œ๊ฐ’)) + ์ตœ์†Œ๊ฐ’ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

  • ์ƒํ•œ๊ฐ’์„ ํฌํ•จํ•œ๋‹ค๋ฉด (Math.random() * (์ตœ๋Œ€๊ฐ’-์ตœ์†Œ๊ฐ’+1)) + ์ตœ์†Œ๊ฐ’ ๋กœ ์‚ฌ์šฉ

  • ์ตœ์†Œ๊ฐ’์€ ๋”ํ•˜๊ธฐ ๊ธฐํ˜ธ๋กœ ์›ํ•˜๋Š” ์ตœ์†Œ๊ฐ’์„ ๋”ํ•ด์ฃผ๋Š”๋ฐ ์ตœ๋Œ€๊ฐ’๊ณผ ๋‹ฌ๋ฆฌ ์ตœ์†Œ๊ฐ’์„ ๋”ํ•˜๊ธฐ๋กœ ๋“ค์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ์ตœ๋Œ€๊ฐ’๋„ ๋™์‹œ์— ๋ณ€ํ•˜๊ฒŒ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์ตœ์†Œ๊ฐ’์„ ์ง€์ •ํ•  ๋•Œ์—๋Š” ์ตœ๋Œ€๊ฐ’์—๋„ ํ”ผํ•ด๊ฐ€ ๊ฐ€์ง€ ์•Š๋„๋ก ์…‹ํŒ…ํ•œ๋‹ค.

Object

var ๊ฐ์ฒด์ด๋ฆ„ = {
	property์ด๋ฆ„1 : property๊ฐ’,
    property์ด๋ฆ„2 : property๊ฐ’
};

let plan1 = {
  name: "Basic",
  price: 3.99,
  space: 100,
  transfer: 1000,
  pages: 10
};
  • ๊ฐ์ฒด๋Š” ์ค‘๊ด„ํ˜ธ๋กœ ๊ฐ์‹ธ์ ธ ์žˆ๊ณ , ์ฝœ๋ก ์œผ๋กœ ๊ตฌ๋ถ„๋œ ์ด๋ฆ„/๊ฐ’ ์Œ๋“ค์ด ์‰ผํ‘œ๋กœ ๋ถ„๋ฆฌ๋œ ๋ชฉ๋ก์˜ ํ˜•ํƒœ์ด๋‹ค. ์ฆ‰, ๊ฐ์ฒด๋Š” ์ด๋ฆ„๊ณผ ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ๋œ ํ”„๋กœํผํ‹ฐ๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค.

  • ํ”„๋กœํผํ‹ฐ ์ด๋ฆ„์€ ์ค‘๋ณต๋  ์ˆ˜ ์—†์œผ๋ฉฐ, ํ”„๋กœํผํ‹ฐ ์ด๋ฆ„๊ณผ ํ”„๋กœํผํ‹ฐ ๊ฐ’ ์‚ฌ์ด์— ์ฝœ๋ก ์œผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.

  • ํ”„๋กœํผํ‹ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ๋Š” ์‰ผํ‘œ๋ฅผ ๋ถ™์—ฌ์ฃผ๋ฉฐ, ํ”„๋กœํผํ‹ฐ ๊ฐ’์—๋Š” ์–ด๋Š ํƒ€์ž…์ด๋‚˜ ๊ฐ€๋Šฅํ•˜๋‹ค.(string, number, array, object, function..)

  • ํ•ด๋‹น ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ ๊ฐ’์„ ์ ‘๊ทผํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” ๊ฐ์ฒด์ด๋ฆ„.ํ”„๋กœํผํ‹ฐ์ด๋ฆ„ ์ด๋‚˜ ๊ฐ์ฒด์ด๋ฆ„['ํ”„๋กœํผํผํ‹ฐ์ด๋ฆ„'] ์œผ๋กœ ์ ‘๊ทผํ•œ๋‹ค.

let plan1 = {   
  name: "Basic"
};

console.log(plan1.name);
console.log(plan1["name"]);
  • ๋งˆ์นจํ‘œ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ํŽธํ•˜์ง€๋งŒ ๋Œ€๊ด„ํ˜ธ ์•ˆ์—๋Š” ๋ณ€์ˆ˜๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.
let plan1 = {   
  name: "Basic"
};

let propertyName = "name";

console.log(plan1[propertyName]);

let myObj = {
  property1: "hello",
  property2: [1,2,3,4,5],
  property3: {
    childproperty: "haha"
  }
};

let name = "property";
console.log(myObj[name+"1"]);
console.log(myObj[name+"2"]);
console.log(myObj[name+"3"]);
console.log(myObj[name+"3"]["child"+name]);

console.log(myObj.property1);
console.log(myObj.property2);
console.log(myObj.property3);
console.log(myObj.property3.childproperty);

->
hello
[ 1, 2, 3, 4, 5 ]
{ childproperty: 'haha' }
haha
hello
[ 1, 2, 3, 4, 5 ]
{ childproperty: 'haha' }
haha
  • ๊ฐ์ฒด๋ฅผ ์ •์˜ํ•œ ์ˆ˜ ์ˆ˜์ •ํ•  ํ”„๋กœํผํ‹ฐ ๊ฐ’์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
let name = "property1";

myObj[name] = ["hi", "hello"];

console.log(myObj);
console.log(myObj.property1[0]);
  • ์ƒˆ๋กœ์šด ํ”„๋กœํผํ‹ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.
myObj.property3.siblingproperty = [3, 6, 9];
console.log(myObj);
  • ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๋ฐฉ๋ฒ•
let objData = {
  name: 50,
  address: { 
    email: "gaebal@gmail.com",
    home: "์œ„์›Œํฌ ์„ ๋ฆ‰2ํ˜ธ์ "
  },
  books: {
    year: [2019, 2018, 2006],
    info: [{
      name: "JS Guide",
      price: 9000
    }, {
      name: "HTML Guide",
      price: 19000,
      author: "Kim, gae bal"
    }]
  }
};

let bookName = objData.books.info[1].name;
console.log(bookName);

Scope

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ scope๋ž€ ๋ณ€์ˆ˜๊ฐ€ ์–ด๋””๊นŒ์ง€ ์“ฐ์ผ ์ˆ˜ ์žˆ๋Š”์ง€์˜ ๋ฒ”์œ„๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

  • ์–ด๋–ค ๋ณ€์ˆ˜๋Š” ์—ฌ๊ธฐ์ €๊ธฐ์„œ ์“ธ ์ˆ˜ ์žˆ๋Š” ๋ฐ˜๋ฉด์—, ์–ด๋–ค ๋ณ€์ˆ˜๋Š” ํŠน์ • ํ•จ์ˆ˜ ๋‚ด์—์„œ๋งŒ ์“ธ ์ˆ˜ ์žˆ๋‹ค.

Block

  • ์ค‘๊ด„ํ˜ธ({}, curly brace)๋กœ ๊ฐ์‹ธ์ง„ ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

  • function,for๋ฌธ, if๋ฌธ์˜ ๋‚ด๋ถ€๋Š” ํ•˜๋‚˜์˜ block์ด๋‹ค.

function hi() {
  return 'i am block';
}

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

if (i === 1) {
  let j = 'one';
  console.log(j);
}
  • ๋ธ”๋ก ๋‚ด๋ถ€์—์„œ ๋ณ€์ˆ˜๊ฐ€ ์ •์˜๋˜๋ฉด ๋ณ€์ˆ˜๋Š” ์˜ค๋กœ์ง€ ๋ธ”๋ก ๋‚ด๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋ธ”๋ก ๋‚ด๋ถ€์—์„œ ์ •์˜๋œ ๋ณ€์ˆ˜๋Š” ์ง€์—ญ๋ณ€์ˆ˜๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

Global Scope

  • scope๋Š” ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์ด๋‹ค. Scope ์™ธ๋ถ€(๋ธ”๋ก ๋ฐ–) ์—์„œ๋Š” ํŠน์ • ์Šค์ฝ”ํ”„์˜ ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค.

  • ๋ธ”๋ก ๋ฐ–์ธ global scope์—์„œ ๋งŒ๋“  ๋ณ€์ˆ˜๋ฅผ global variable(์ „์—ญ ๋ณ€์ˆ˜)๋ผ๊ณ  ํ•œ๋‹ค.

const color = 'red';
console.log(color);

function returnColor() {
  console.log(color);
  return color;
}

console.log(returnColor());

Scope์˜ ์˜ค์—ผ

  • global ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ฉด ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์˜ ์–ด๋””์—์„œ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” global namespace๋ฅผ ๊ฐ–๋Š”๋‹ค. namespace๋Š” ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„์ด๋‹ค.(scope๋ผ๊ณ ๋„ ํ•˜๋ฉฐ ํŠนํžˆ ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ์ด์•ผ๊ธฐ ํ•  ๋•Œ๋Š” namespace๋ผ๊ณ ๋„ ํ•œ๋‹ค.)

  • global ๋ณ€์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์† ์‚ด์•„์žˆ์ง€๋งŒ ๋ณ€์ˆ˜๊ฐ’์ด ๊ณ„์† ๋ณ€ํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๋ณ€์ˆ˜๋ฅผ ํŠธ๋ž˜ํ‚น ํ•˜๊ธฐ๋„ ์–ด๋ ต๊ณ  ์–ด๋””์—์„œ ์™œ ํ•„์š”ํ•œ์ง€ ์•Œ๋ ค๋ฉด ์–ด๋””์—์„œ let, const ๋กœ ์„ ์–ธํ–ˆ๋Š”์ง€ ์ฐพ์•„๋‚˜์„œ์•ผ ํ•œ๋‹ค.

//scope์˜ ์˜ค์—ผ
const satellite = 'The Moon';
const galaxy = 'The Milky Way';
let stars = 'North Star';

const callMyNightSky = () => {
  stars = 'Sirius';
  
  return 'Night Sky: ' + satellite + ', ' + stars + ', ' + galaxy;
};

console.log(callMyNightSky());
console.log(stars);
  • ๊ธ€๋กœ๋ฒŒ ๋ณ€์ˆ˜๊ฐ€ ์—ฌ๊ธฐ์ €๊ธฐ์„œ ์ˆ˜์ •๋˜๋ฉด ์•ˆ๋ผ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€์ˆ˜๋“ค์€ block scope์œผ๋กœ ์ตœ๋Œ€ํ•œ ๋‚˜๋ˆ ๋†”์•ผ ํ•œ๋‹ค.

  • ์ฝ”๋“œ๊ฐ€ ๋ธ”๋ก์œผ๋กœ ๋ช…ํ™•ํ•˜๊ฒŒ ๊ตฌ๋ถ„๋˜๋ฉด ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์ด ์˜ฌ๋ผ๊ฐ€๋ฉฐ ์ฝ”๋“œ๊ฐ€ ํ•œ์ค„ํ•œ์ค„ ์ญ‰ ๋‚˜์—ด๋œ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ฐ๊ฐ์˜ ๊ธฐ๋Šฅ๋ณ„๋กœ ๋ธ”๋ก์„ ๋‚˜๋ˆ„๋ฉด ์ฝ”๋“œ๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค.

  • ๋‚˜์ค‘์— ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ์ผ์ด ์žˆ์„ ๋•Œ ์ฝ”๋“œ๋ฅผ ์˜ค๋žœ๋งŒ์— ๋ณด๋”๋ผ๋„ ์ž˜ ๋‚˜๋‰˜์–ด ์žˆ์œผ๋ฉด ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฌ์–ด์ง€๋ฉฐ ํ”„๋กœ๊ทธ๋žจ์ด ๋๋‚  ๋–„ ๊นŒ์ง€ ๋ณ€์ˆ˜๊ฐ€ ์‚ด์•„์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ์„œ ๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ๋„ ๋œ๋‹ค.

  • ์ฆ‰, ๊ธ€๋กœ๋ณ„ ๋ณ€์ˆ˜๋Š” ์“ฐ์ง€ ์•Š๋„๋ก ๋…ธ๋ ฅํ•ด์•ผํ•˜๊ณ , ์ตœ๋Œ€ํ•œ ๋ธ”๋ก ๋‚ด์—์„œ let, const๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

  • ์ƒˆ๋กœ์šด ๋ธ”๋ก์—์„œ ๋ณ€์ˆ˜๋ฅผ ์“ธ๋•Œ๋Š” ํ•ญ์ƒ ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•ด์•ผ ํ•œ๋‹ค.

function logSkyColor() {
  const dusk = true;
  let myColor = 'blue'; 

  if (dusk) {
    let myColor = 'pink';
    console.log(myColor); // pink
  }

  console.log(myColor); // blue 
}

console.log(myColor); // ์—๋Ÿฌ!!

Class

  • ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํ•ต์‹ฌ์ด๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€, ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ์ฒด๋“ค๋กœ ๊ตฌ์„ฑํ•˜๊ณ , ๊ฐ์ฒด๋“ค ๊ฐ„์— ์„œ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•˜๋„๋ก ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์ค‘์‹ฌ์— ์žˆ๋Š” ์–ธ์–ด๋Š” ์•„๋‹ˆ์ง€๋งŒ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์žˆ์–ด์„œ class, ๊ฐ์ฒด, ๊ฐ์ฒด์ง€ํ–ฅ์€ ํ•ญ์ƒ ์ค‘์š”ํ•œ ์ฃผ์ œ์ด๋‹ค.

  • ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ฐ์ฒด๋Š” { num: 1 } ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋งํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ฉฐ ๋ง ๊ทธ๋Œ€๋กœ ์‚ฌ๋ฌผ์„ ๋œปํ•œ๋‹ค.

  • ํ•˜์ง€๋งŒ ํด๋ž˜์Šค๋Š” ๊ฒฐ๊ตญ { num: 1 } ์ฒ˜๋Ÿผ ์ƒ๊ธด ๊ฐ์ฒด๋ฅผ ์ž˜ ์„ค๊ณ„ํ•˜๊ธฐ ์œ„ํ•œ ํ‹€์€ ๋งž๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด ๋•Œ์˜ ๊ฐ์ฒด๋Š” ํŠน์ • ๋กœ์ง์„ ๊ฐ–๊ณ  ์žˆ๋Š” ํ–‰๋™(๋ฉ”์†Œ๋“œ)๊ณผ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ(๋ฉค๋ฒ„ ๋ณ€์ˆ˜)๋ฅผ ๊ฐ–๋Š”๋‹ค.

  • ์›ํ•˜๋Š” ๊ตฌ์กฐ์˜ ๊ฐ์ฒด ํ‹€์„ ์งœ๋†“๊ณ , ๋น„์Šทํ•œ ๋ชจ์–‘์˜ ๊ฐ์ฒด๋ฅผ ๊ณต์žฅ์ฒ˜๋Ÿผ ์ฐ์–ด๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ์ฒด๋ฅผ ๋งค๋ฒˆ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•ด๋„ ์ข‹์ง€๋งŒ ํฐ ๊ทœ๋ฌ˜์˜ ๊ฐ์ฒด์ด๊ฑฐ๋‚˜ ๋น„์Šทํ•œ ๋ชจ์–‘์˜ ๊ฐ์ฒด๋ฅผ ๊ณ„์† ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค๋ฉด class๋ผ๋Š” ์„ค๊ณ„๋„๋ฅผ ํ†ตํ•ด ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

let ray = {  
  name: 'Ray',  
  price: 2000000,   
  getName: function() {  
    return this.name;  
  },   
  getPrice: function() {  
    return this.price;  
  },   
  applyDiscount: function(discount) {  
    return this.price * discount;   
  } 
}
  • ํ”„๋กœํผํ‹ฐ ๊ฐ’์— ํ•จ์ˆ˜๊ฐ€ ํ• ๋‹น๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ˜ธ์ถœํ•œ๋‹ค.
const rayPriceByFunction = ray.getPrice();
console.log('ํ•จ์ˆ˜๋กœ ์ ‘๊ทผ => ' +rayPriceByFunction);
  • ๊ฐ์ฒด ๋‚ด๋ถ€์—์„œ ํ•ด๋‹น ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•˜๋ ค๋ฉด this๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์ƒ์„ฑ์ž(constructor)

  • ๊ฐ์ฒด์˜ ์„ค๊ณ„๋„์ธ ํด๋ž˜์Šค๋Š” ๋ฌธ๋ฒ•์ด ๋น„์Šทํ•˜์ง€๋งŒ ๋‘˜์˜ ๊ฐ€๋Šฅ ํฐ ์ฐจ์ด๋Š” constructor๋ผ๋Š” ์ƒ์„ฑ์ž ํ•จ์ˆ˜์ด๋‹ค.

  • ์•„๋ž˜์™€ ๊ฐ™์ด ํด๋ž˜์Šค๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •์„ ์ธ์Šคํ„ด์Šคํ™”๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

const morning = new Car('Morning', 2000000);
  • ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋ฅผ ์ธ์Šคํ„ด์Šค๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ ํด๋ž˜์Šค๋Š” ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ• ๋•Œ๋งˆ๋‹ค constructor() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.
class Car {
  constructor(name, price) {
    this.name = name;
    this.price = price;
  }
}
  • Car๋Š” class์ด๋ฆ„์œผ๋กœ ํ•ญ์ƒ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๊ณ , CamelCase๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.

  • Car class์˜ instance๋ฅผ ์ƒ์„ฑํ• ๋•Œ๋งˆ๋‹ค constructor๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค.

  • constructor()๋ฉ”์„œ๋“œ๋Š” name, price 2๊ฐœ์˜ argument(์ธ์ž)๋ฅผ ๋ฐ›๋Š”๋‹ค.

  • constructor()๋ฉ”์„œ๋“œ์— this ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ, class์˜ ์‹คํ–‰๋ฒ”์œ„(context)์—์„œ this๋Š” ํ•ด๋‹น instance๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

  • constructor()์—์„œ ์ธ์ž๋กœ ๋„˜์–ด์˜ค๋Š” name๊ณผ price๋ฅผ ์‚ฌ์šฉํ•ด Car instance์˜ name, price ํ”„๋กœํผํ‹ฐ์— ๊ฐ’์„ ํ• ๋‹นํ•œ๋‹ค.

  • ์ด๋ ‡๊ฒŒ ํด๋ž˜์Šค ๋‚ด์—์„œ name, price์™€ ๊ฐ™์ด ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๊ฐ’์ด์ž class๋‚ด์˜ ์ปจํ…์ŠคํŠธ์—์„œ ์–ด๋Š ๊ณณ์—์„œ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜๋ฅผ '๋ฉค๋ฒ„ ๋ณ€์ˆ˜'๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

  • ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋Š” 'this' ํ‚ค์›Œ๋“œ๋กœ ์ ‘๊ทผํ•œ๋‹ค.

์ธ์Šคํ„ด์Šค(instance)

  • ์ธ์Šคํ„ด์Šค๋Š” ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋กœ, ํด๋ž˜์Šค์˜ ํ”„๋กœํผํ‹ฐ ์ด๋ฆ„๊ณผ ๋ฉ”์†Œ๋“œ๋ฅผ ๊ฐ–๋Š” ๊ฐ์ฒด์ด๋ฉฐ, ์ธ์Šคํ„ด์Šค๋งˆ๋‹ค ๋ชจ๋‘ ๋‹ค๋ฅธ ํ”„๋กœํผํ‹ฐ ๊ฐ’์„ ๊ฐ–๊ณ  ์žˆ๋‹ค.
const morning = new Car('Morning', 20000000);
  • ์ธ์Šคํ„ด์Šค๋Š” ํด๋ž˜์Šค ์ด๋ฆ„์— new๋ฅผ ๋ถ™์—ฌ์„œ ์ƒ์„ฑํ•œ๋‹ค.

  • ํด๋ž˜์Šค ์ด๋ฆ„ ์šฐ์ธก์— () ๊ด„ํ˜ธ๋ฅผ ์—ด๊ณ  ๋‹ซ๊ณ , ๋‚ด๋ถ€์—๋Š” constructor์—์„œ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ธ์ž๋กœ ๋„˜๊ฒจ์ค€๋‹ค.

  • Carํด๋ž˜์Šค์˜ instance๋ฅผ morning์ด๋ผ๋Š” ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค.

  • Car ํด๋ž˜์Šค์˜ ์ƒˆ๋กœ์šด instance๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด new ํ‚ค์›Œ๋“œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. newํ‚ค์›Œ๋“œ๋Š” constructor() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์ƒˆ๋กœ์šด instance๋ฅผ return ํ•ด์ค€๋‹ค.

  • 'Morning'์ด๋ผ๋Š” String๊ณผ 2000000์ด๋ผ๋Š” Number๋ฅผ Car ์ƒ์„ฑ์ž์— ๋„˜๊ฒจ์ฃผ์—ˆ๊ณ , name, price ํ”„๋กœํผํ‹ฐ์— ๊ฐ์ž์˜ ๊ฐ’์ด ํ• ๋‹น๋œ๋‹ค.

const spaceship = new Car('์šฐ์ฃผ์„ ', 25000000);
console.log(spaceship);
console.log(spaceship.name); 
console.log(spaceship.price); 
console.log(spaceship.applyDiscount(0.5));

๋ฉ”์„œ๋“œ (method)

  • ๋ฉ”์„œ๋“œ๋Š” ํ•จ์ˆ˜์ด์ง€๋งŒ ๊ฐ์ฒด๊ฐ€ ํ”„๋กœํผํ‹ฐ ๊ฐ’์œผ๋กœ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ๋ฉ”์„œ๋“œ๋ผ ๋ถ€๋ฅธ๋‹ค.

  • ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๋Š” ๊ฐ์ฒด์˜ ๋ฌธ๋ฒ•๊ณผ ๊ฐ™์•„. ๋‹ค๋งŒ ๊ฐ์ฒด๋Š” ํ”„๋กœํผํ‹ฐ๋งˆ๋‹ค ์ฝค๋งˆ๋กœ ๊ตฌ๋ถ„ํ•ด์ค˜์•ผ ํ•˜์ง€๋งŒ ํด๋ž˜์Šค๋Š” ๊ทธ๋ ‡์ง€ ์•Š๋‹ค.

class Car {
  constructor(name, price) {
    this.name = name;
    this.price = price;
    this.department = "์„ ๋ฆ‰์ง€์ ";
  }

  applyDiscount(discount) {  
    return this.price * discount;   
  }

  changeDepartment(departmentName) {
    this.department = departmentName;
  }
}

object

  • ๊ฐ์ฒด๋Š” {}๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐํƒ€์ž…์ฒ˜๋Ÿผ ๋ณ€์ˆ˜์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋ฅผ object literal ์ด๋ผ๊ณ  ํ•œ๋‹ค.
//hello ๋ณ€์ˆ˜์— ๋นˆ ๊ฐ์ฒด ํ• ๋‹น
let hello = {};
  • ๊ฐ์ฒด๋Š” ์ˆœ์„œ๊ฐ€ ์—†๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ชจ์Œ์ด๋ฉฐ ๋ฐ˜๋Œ€๋กœ ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋ฐฐ์—ด์ด๋‹ค.

  • ๊ฐ์ฒด๋Š” ํ‚ค-๊ฐ’ ์Œ์œผ๋กœ๋œ ๋ฐ์ดํ„ฐ์˜ ๋ชจ์Œ์œผ๋กœ ์ˆœ์„œ๊ฐ€ ๋’ค๋ฐ”๋€Œ์–ด๋„ ์•„๋ฌด ์ƒ๊ด€์ด ์—†๋‹ค. ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์ˆœ์„œ๋Œ€๋กœ ์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ‚ค๋กœ ์ ‘๊ทผํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

  • ํ‚ค๋Š” property name์ด๋ผ๊ณ ๋„ ํ•˜๋ฉฐ, ๊ฐ’์€ property value๋ผ๊ณ  ํ•œ๋‹ค.

let example = {
	'name' = '๊น€๊ฐœ๋ฐœ',
    'age' = 20
}
  • ํ‚ค๋Š” ํŠน์ • ๊ฐ’์„ ๊ฐ–๊ณ  ์žˆ๋Š” ๋ณ€์ˆ˜ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๋ฉฐ, ํ•ด๋‹น ํ‚ค๋กœ ํ”„๋กœํผํ‹ฐ์— ์–ด๋–ค ๊ฐ’์ด ์ €์žฅ๋˜์—ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

  • ํ‚ค์˜ ๊ฐ’์—๋Š” ํ…์ŠคํŠธ, ์ˆซ์ž ๋ฟ ์•„๋‹ˆ๋ผ ํ•จ์ˆ˜, ๊ฐ์ฒด๋„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.

let difficult = {
  'my name': 'boong',
  color: 'silver',
  ํ‚ค: 'ํ•œ๊ธ€์ธ ํ‚ค๋Š” ๋”ฐ์˜ดํ‘œ๊ฐ€ ์—†์–ด๋„ ๋˜๋Š”๊ตฐ!!',
  '!ํ‚ค': '๋Š๋‚Œํ‘œ ์žˆ๋Š” ํ‚ค๋Š” ๋”ฐ์˜ดํ‘œ๊ฐ€ ํ•„์š”ํ•˜๊ตฐ',
  $special: '$๋Š” ์—†์–ด๋„ ๋˜๋Š”๊ตฐ'
};
  • ๊ฐ์ฒด์˜ ํ‚ค์—๋Š” ์ŠคํŽ˜์ด์Šค, ํ•œ๊ธ€, ํŠน์ˆ˜๋ฌธ์ž ๋“ฑ์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.(๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ๋Š” ๋ถˆ๊ฐ€๋Šฅ)

  • color์˜ค ๊ฐ™์ด ํ‚ค์— ํŠน์ˆ˜๋ฌธ์ž๊ฐ€ ์—†์œผ๋ฉด ๋”ฐ์˜ดํ‘œ๋ฅผ ์ƒ๋žตํ•˜๊ณ  ์“ธ ์ˆ˜ ์žˆ๋‹ค.

ํ”„๋กœํผํ‹ฐ ์ ‘๊ทผ

  • dot์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๋Œ€๊ด„ํ˜ธ๋กœ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.
let difficult = {
  'my name': 'boong',
  color: 'silver',
  ํ‚ค: 'ํ•œ๊ธ€์ธ ํ‚ค๋Š” ๋”ฐ์˜ดํ‘œ๊ฐ€ ์—†์–ด๋„ ๋˜๋Š”๊ตฐ!!',
  '!ํ‚ค': '๋Š๋‚Œํ‘œ ์žˆ๋Š” ํ‚ค๋Š” ๋”ฐ์˜ดํ‘œ๊ฐ€ ํ•„์š”ํ•˜๊ตฐ',
  $special: '$๋Š” ์—†์–ด๋„ ๋˜๋Š”๊ตฐ'
};

console.log(difficult.color);
  • dot์€ ํ‚ค๋กœ ๋ฐ”๋กœ ์ ‘๊ทผํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ํ‚ค๋งŒ ์•Œ๊ณ  ์žˆ์œผ๋ฉด dot์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ์ œ์ผ ํŽธํ•˜๋‹ค. dot์œผ๋กœ ์ ‘๊ทผํ•  ๋•Œ๋Š” ๋”ฐ์˜ดํ‘œ ์—†์ด ํ‚ค๋ฅผ ๋ฐ”๋กœ ์จ์ค˜์•ผํ•œ๋‹ค.

  • ๋Œ€๊ด„ํ˜ธ๋กœ ์ ‘๊ทผํ•˜๋ ค๋ฉด ํ‚ค ์ด๋ฆ„์„ ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ์„œ ์ž‘์„ฑํ•ด์ค˜์•ผ ํ•˜๋ฉฐ, ์ŠคํŽ˜์ด์Šค๊ฐ€ ํฌํ•จ๋œ ์นด๋Š” ๋Œ€๊ด„ํ˜ธ๋กœ ์ ‘๊ทผํ•œ๋‹ค.

console.log(difficult['color']); 

//์ŠคํŽ˜์ด์Šค ํฌํ•จ์‹œ ๋Œ€๊ด„ํ˜ธ๋กœ ์ ‘๊ทผํ•œ๋‹ค.
console.log(difficult.my name);
console.log(difficult['my name']);

//์ˆซ์ž๋กœ ๋œ ํ‚ค๋„ ๋Œ€๊ด„ํ˜ธ๋กœ ์ ‘๊ทผํ•œ๋‹ค.
console.log(difficult.33);
console.log(difficult['33']);

๋ณ€์ˆ˜๋กœ ํ”„๋กœํผํ‹ฐ ์ ‘๊ทผํ•˜๊ธฐ

  • ๋ณ€์ˆ˜์— ํ‚ค ์ด๋ฆ„์ด ์ €์žฅ๋˜์–ด ์žˆ์œผ๋ฉด ๋ณ€์ˆ˜๋กœ๋„ ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

  • dot์œผ๋กœ ์ ‘๊ทผํ•œ๋‹ค๋Š” ๋œป์€ ์‹ค์ œ ํ‚ค ์ด๋ฆ„์„ ์‚ฌ์šฉํ•  ๋•Œ ์ด๋ฏ€๋กœ ๋ณ€์ˆ˜๋กœ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ณ€์ˆ˜๋กœ ์ ‘๊ทผ์‹œ์—๋Š” ํ•ญ์ƒ ๋Œ€๊ด„ํ˜ธ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•œ๋‹ค.


let name = 'ํ‚ค';

//๊ฐ€๋Šฅ
console.log(difficult[name]);

//๋ถˆ๊ฐ€๋Šฅ
console.log(difficult.name);

ํ”„๋กœํผํ‹ฐ ํ• ๋‹น

  • ๊ฐ์ฒด์— ์ด๋ฏธ ํ‚ค๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ ๋‹ค์‹œ ํ•œ๋ฒˆ ํ• ๋‹นํ•˜๋ฉด ๊ฐ’์ด ๊ต์ฒด๋˜๋ฉฐ ์ด์ „์— ์—†๋˜ ํ‚ค๋กœ ์ ‘๊ทผํ•˜๋ฉด ์ƒˆ๋กœ์šด ํ”„๋กœํผํ‹ฐ๊ฐ€ ์ถ”๊ฐ€๋œ๋‹ค.
difficult[name] = '๊ฐ’ ๋ฐ”๊พผ๋‹ค';
console.log(difficult[name]);

difficult.color = '์ƒ‰๊น”';
console.log(difficult.color);

console.log('์ƒ์„ฑ์ „: ' + difficult.new);
difficult.new = '์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ํ”„๋กœํผํ‹ฐ';
console.log('์ƒ์„ฑํ›„: ' + difficult.new)
  • ์—†๋˜ ํ‚ค์— ์ ‘๊ทผํ•˜๋ฉด ํ”„๋กœํผํ‹ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ์ค€๋น„๋Š” ๋˜์–ด์žˆ์ง€๋งŒ ๊ฐ’์ด ์—†์–ด undefined ๊ฐ€ ๋œฌ๋‹ค.
console.log(difficult.newProperty);
  • ์•„๋ž˜๋Š” ์—†๋˜ ํ‚ค์— ๊ฐ’์„ ๋ฐ”๋กœ ์ž…๋ ฅํ•ด์„œ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
difficult.realNewProperty = '์ถ”๊ฐ€ ๋๋‹ค';
  • const๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ๊ฐ’์„ ์ ˆ๋Œ€ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, const๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜์— ๊ฐ์ฒด๋ฅผ ๋‹ค์‹œ ํ• ๋‹นํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ธฐ์ง€๋งŒ ๊ทธ ๊ฐ์ฒด์— ํ”„๋กœํ”„ํ‹ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์€ ๊ฐ€๋Šฅํ•˜๋‹ค.
const mutableObj = {
  name: '๊ฐ์ฒด'
};

mutableObj = {
   name: '์ˆ˜์ •'
}
  • ๋ณ€์ˆ˜ mutableObj ์ž์ฒด์— ๊ฐ์ฒด๋ฅผ ์žฌ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
mutableObj.name = '์ˆ˜์ •';
mutableObj.type = 'Object ํƒ€์ž…';
  • ๊ทธ๋ ‡์ง€๋งŒ ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•ด์„œ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜, ํ”„๋กœํผํ‹ฐ๋ฅผ ์ถ”๊ฐ€ํ•œ๋Š ๊ฒƒ์€ ์—๋Ÿฌ๊ฐ€ ๋‚˜์ง€ ์•Š๋Š”๋‹ค.

method

  • ๊ฐ์ฒด์— ์ €์žฅ๋œ ๊ฐ’์ด ํ•จ์ˆ˜์ผ ๋•Œ ๋ฉ”์„œ๋“œ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
console.log();
  • console ๋„ ๊ฐ์ฒด์ด๋ฉฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์–ด๋””์—์„œ๋‚˜ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ global ๊ฐ์ฒด์ด๋‹ค.

  • console ๋‹ค์Œ์— dot์œผ๋กœ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ ‘๊ทผํ–ˆ๊ณ  log๋ผ๋Š” ํ‚ค์˜ ๊ฐ’์€ ํ•จ์ˆ˜์ด๋‹ค.(log๋Š” console์ด๋ผ๋Š” ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ์ด๋‹ค.)

//๊ฐ์ฒด์— ๋ฉ”์„œ๋“œ ์ •์˜
let methodObj = {
  do: function() {
    console.log('๋ฉ”์„œ๋“œ ์ •์˜๋Š” ์ด๋ ‡๊ฒŒ');
  }
}

methodObj.do();

์ค‘์ฒฉ๋œ ๊ฐ์ฒด

let nestedObj = {
  type: {
    year: '2019',
    'comment-type': [{
      name: 'simple'
    }]
  }

//simple์„ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด
console.log(nestedObj.type['comment-type'][0].name);

๊ฐ์ฒด๋Š” reference๋กœ ์ €์žฅ๋œ๋‹ค.

  • ๊ฐ์ฒด๋ฅผ ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๋ฉด ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ์ž์ฒด๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ reference๊ฐ€ ์ €์žฅ๋œ๋‹ค.

  • ํ…์ŠคํŠธ๋Š” ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๋ฉด ํ…์ŠคํŠธ ์ž์ฒด๊ฐ€ ์ €์žฅ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐ™์€ ํ…์ŠคํŠธ์ด๋ฉด ์„œ๋กœ ๊ฐ’์ด ๊ฐ™์œผ๋ฏ€๋กœ true์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ฐ์ฒด๋Š” ์ƒ๊ธด ๋ชจ์–‘์ด ๊ฐ™์•„๋„ false๋ผ๊ณ  ์ถœ๋ ฅ๋œ๋‹ค.

const hiObj = { 
  name: '์•ˆ๋…•' 
};
const helloObj = {
  name: '์•ˆ๋…•'
};
console.log('๊ฐ์ฒด๋น„๊ต =>', hiObj === helloObj);
  • ๊ทธ ์ด์œ ๋Š” ๊ฐ์ฒด๋Š” ๋ณ€์ˆ˜์— ์ €์žฅํ•  ๋–„ ๊ฐ์ฒด ์ž์ฒด๋ฅผ ๊ทธ๋Œ€๋กœ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ฐ์ฒด๊ฐ€ ๋‹ด๊ธด ์–ด๋Š ๋ฉ”๋ชจ๋ฆฌ์˜ reference๋ฅผ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

  • hiObj๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ์ง„์งœ ๊ฐ’์€ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์ธ reference์ด๋‹ค. ํ•˜์ง€๋งŒ hiObj๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ ๋ฉ”๋ชฐ ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ํ•ด๋‹น ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ค€๋‹ค.
//๋ˆˆ์— ๋ณด์ด๋Š” ๋ฐ์ดํ„ฐ๋Š” ๊ฐ™์ง€๋งŒ ๊ฐ–๊ณ  ์žˆ๋Š” ์ง„์งœ ๊ฐ’์€ ๋‹ค๋ฅด๋‹ค.
console.log('๊ฐ์ฒด๋น„๊ต =>', hiObj === helloObj);
console.log('๊ฐ์ฒด๊ฐ’๋น„๊ต =>', hiObj.name === helloObj.name);
  • ๊ทธ๋ž˜์„œ ๊ฐ์ฒด๋ฅผ ๋‹ด์€ ๋ณ€์ˆ˜๋ฅผ ๋น„๊ตํ•˜๋ฉด ์„œ๋กœ ๊ฐ™์ง€ ์•Š๋‹ค๊ณ  ๋‚˜์˜จ๋‹ค.

  • ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ํ”„๋กœํผํ‹ฐ ๊ฐ’์ด ํ…์ŠคํŠธ์ผ ๊ฒฝ์šฐ ํ…์ŠคํŠธ๋ฅผ ๋น„๊ตํ•˜๊ฒŒ ๋œ์–ด ์„œ๋กœ ๊ฐ™์Œ / ๋‹ค๋ฆ„ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค.

const mutableObj = {
  name: '๊ฐ์ฒด'
};

mutableObj = {
   name: '์ˆ˜์ •'
}

mutableObj.name = '์ˆ˜์ • ๋ฉ๋‹ˆ๋‹ค!';
  • const๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ์ ˆ๋Œ€ ๊ฐ’์ด ๋ฐ”๋€” ์ˆ˜์—†๋‹ค. ๊ทธ๋ž˜์„œ mutableObj์— ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ํ• ๋‹นํ•˜๋ฉด ์ƒˆ๋กœ์šด ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋กœ ์ˆ˜์ •์„ ์‹œ๋„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋‚œ๋‹ค.

  • ํ•˜์ง€๋งŒ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ ‘๊ทผํ•ด์„œ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. mutableObj๊ฐ€ ์ €์žฅ๋œ reference๊ฐ€ ๋ฐ”๋€๋Š ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ํ”„๋กœํผํ‹ฐ ๊ฐ’์ด ์ˆ˜์ •๋˜๋Š” ๊ฒƒ์ด๋ผ ์ˆ˜์ •๋œ๋‹ค.

arrow function

ES6 = ECMA Script 2015

  • ํ˜„์žฌ๋Š” ES10 ๋ฒ„์ „ ๊นŒ์ง€ ๋‚˜์™”๋‹ค. ์ฃผ๋กœ ์“ฐ์ด๋Š” ๊ฒƒ์€ ES6์ธ๋ฐ, 6์€ ๋ฒ„์ „ ์ด๋ฆ„์ด๊ณ  ES 2015๋ผ๊ณ ๋„ ํ•œ๋‹ค. (2015๋…„์— ES6๋ฒ„์ „์ด ์ตœ์ข…์œผ๋กœ ๋‚˜์™”๊ธฐ ๋•Œ๋ฌธ)

//ES5
function() {}

//ES6
() => {}
  • ์ด๋ฆ„์ด ์—†๋Š” ํ•จ์ˆ˜์˜ ๊ธฐ๋ณธ์ ์ธ ํ‘œํ˜„์œผ๋กœ ES6์—์„ ๋Š function์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ๊ฐ€ ๋น ์ง€๊ณ  ์†Œ๊ด„ํ˜ธ๋งŒ ๋‚จ๊ณ  => (arrow)๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.

  • ์ด๋ฆ„์ด ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉฐ ํ™€์ถœํ•  ๋•Œ๋Š” ๋‘˜๋‹ค ๊ฐ™๋‹ค.

//ES5
function getName() {}

//ES6
const getName = () => {}

getName()
  • ES6๋Š” ํ•จ์ˆ˜๋ฅผ getName์ด๋ผ๋Š” ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค. function์€ ๋ณ€์ˆ˜์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํ•˜๋‚˜์˜ ์‹์ธ๋ฐ ๊ทธ๋ž˜์„œ ES5์ผ๋•Œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ณ€์ˆ˜์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
//ES5
//Function Declaration
function getName() {}

//ES5
//Function Expression
const getName = function() {}
  • ์ธ์ž๊ฐ€ ํ•˜๋‚˜์ผ๋•Œ๋Š” ์†Œ๊ด„ํ˜ธ ์ƒ๋žต์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ธ์ž๊ฐ€ ๋‘๊ฐœ์ผ ๋•Œ๋Š” ์ƒ๋žตํ•  ์ˆ˜ ์—†๋‹ค.
//ES5
const getName = function(name) {}

//ES6
const getName = (name) => {}
const getName = name => {}

//ES5
const getName = function(name, age) {}

//ES6
const getName = (name, age) => {}
  • ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰ ๋‚ด์šฉ ์—†์ด return ๋งŒ ํ•œ๋‹ค๋ฉด return ํ‚ค์›Œ๋“œ์™€ ์ค‘๊ด„ํ˜ธ๊ฐ€ ์ƒ๋žต ๊ฐ€๋Šฅํ•˜๋‹ค.
//ES5
function getName(name) {
  return name;
}

//ES6
const hi = name => { return name };
const hi = name => name;
  • ์ค‘๊ด„ํ˜ธ์™€ return ๋ฌธ์— ์ƒ๋žต๋  ๊ฒฝ์šฐ ํ™”์‚ดํ‘œ ์˜ค๋ฅธ์ชฝ์—๋Š” ๋ฆฌํ„ด๋  ๊ฐ’๋งŒ ์“ฐ์—ฌ์•ผ ํ•œ๋‹ค.
//ES5
function getFullName(first, family) {
  return first + family;
}

//ES6
const hi = (first, family) => { return first + family };
const hi = (first, family) => first + family;

template literals, string method

template literals

  • ์›๋ž˜ string์„ ์ž‘์„ฑํ•  ๋•Œ ๋”ฐ์˜ดํ‘œ๋ฅผ ์‚ฌ์šฉํ–ˆ์—ˆ์ง€๋งŒ ES6์—์„œ ์ถ”๊ฐ€๋œ ๋ฌธ๋ฒ•์ค‘์— template literal ๋•๋ถ„์— back tick์œผ๋กœ๋„ string์„ ๊ฐ์Œ€ ์ˆ˜ ์žˆ๋‹ค.
const name = '๊น€๊ฐœ๋ฐœ';

const name = `๊น€๊ฐœ๋ฐœ`;
  • ๊ทธ๋ฆฌ๊ณ  back tick์œผ๋กœ ๊ฐ์‹ธ๋ฉด ๊ทธ ์•ˆ์— ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์–ด์„œ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
const name = '๊น€๊ฐœ๋ฐœ';
//ES5
const hi = '์•ˆ๋…•ํ•˜์„ธ์š”. ์ €๋Š” ' + name + ' ์ž…๋‹ˆ๋‹ค.';

//ES6
const hi = `์•ˆ๋…•ํ•˜์„ธ์š”. ์ €๋Š” ${name} ์ž…๋‹ˆ๋‹ค.`;
  • ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ผ string์€ ๊ฐœํ–‰ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋ฌธ๋ฒ• ์˜ค๋ฅ˜์ด๋‹ค. ๊ฐœํ–‰์ฒ˜๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•œ๋‹ค.
let detail = '์ž์„ธํžˆ\n'+'๋ณด์•„์•ผ\n'+'์ด์˜๋‹ค';
console.log(detail);
  • template literal ์—์„œ๋Š” string์„ ์ž…๋ ฅํ•œ๋Œ€๋กœ ๊ฐœํ–‰์ด ๋œ๋‹ค.
let detail = `์ž์„ธํžˆ 
๋ณด์•„์•ผ
์ด์˜๋‹ค


๋‚ด์ฝ”๋“œ..`;
console.log(detail);

string method

  • string์—์„œ ํŠน์ • string์„ ์ฐพ๊ธฐ ์œ„ํ•ด indexOf๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ์•„๋ž˜์˜ 3๊ฐ€์ง€ ๋ฉ”์†Œ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.

    1) startsWith
    2) endsWith
    3) includes

const email = 'yealee.kim87@gmail.com';

console.log(email.startsWith('ye'));
console.log(email.endsWith('com'));
console.log(email.includes('@gmail'));
  • ํŠน์ • ๋ฌธ์ž์—ด์„ ๋ฐ˜๋ณตํ•˜๊ณ  ์‹ถ์„ ์‹œ repeat ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  • ๋ธŒ๋ผ์šฐ์ €์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ˆ˜๋‹จ
    Local Storage: ํ•ด๋‹น ๋„๋ฉ”์ธ์— ์˜๊ตฌ ์ €์žฅํ•˜๊ณ  ์‹ถ์„ ๋•Œ
    Session Storage: ํ•ด๋‹น ๋„๋ฉ”์ธ์˜, ํ•œ ์„ธ์…˜์—์„œ๋งŒ ์ €์žฅํ•˜๊ณ  ์‹ถ์„ ๋•Œ. ์ฐฝ์„ ๋‹ซ์œผ๋ฉด ์ •๋ณด๊ฐ€ ๋‚ ๋ผ๊ฐ
    Cookie: ํ•ด๋‹น ๋„๋ฉ”์ธ์— ๋‚ ์งœ๋ฅผ ์„ค์ •ํ•˜๊ณ  ๊ทธ ๋•Œ๊นŒ์ง€๋งŒ ์ €์žฅํ•˜๊ณ  ์‹ถ์„ ๋•Œ
  • ์…‹ ๋‹ค global ๋ณ€์ˆ˜๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ฟ ํ‚ค๋ฅผ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” document ๊ฐ์ฒด์—์„œ ์ ‘๊ทผํ•œ๋‹ค.
document.cookie
  • localStorage๋Š” ๊ธ€๋กœ๋ฒŒ ๋ณ€์ˆ˜์ธ๋ฐ ํŠน์ • ๊ฐ’์„ ๋ณด๊ณ  ์‹ถ์œผ๋ฉด, getItem ๋ฉ”์„œ๋“œ๋กœ ์ ‘๊ทผํ•˜๊ณ ,
    sessionStorage๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋ฉฐ, ๊ฐ’์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” setItem ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

array methods

  • arrow function์„ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ• ๋•Œ๋Š” callback ํ•จ์ˆ˜๋กœ ์‚ฌ์šฉํ•  ๋•Œ ์ด๋‹ค. call back ํ•จ์ˆ˜๋ž€ ์ธ์ž๋กœ ์ „๋‹ฌ๋˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.

Array.map()

  • map ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์„ ๋ฐ˜๋ณตํ•ด์ฃผ๋Š”๋ฐ, callback ํ•จ์ˆ˜์—์„œ return ํ•œ ๊ฐ’์œผ๋กœ ๋งค ์š”์†Œ๋ฅผ ์ˆ˜์ •ํ•ด์ค€๋‹ค.

  • map ๋ฉ”์„œ๋“œ์˜ return ๊ฐ’์€ ์ˆ˜์ •๋œ ๊ฐ’์œผ๋กœ ๋‹ค์‹œ ์ƒ์„ฑ๋œ ๋ฐฐ์—ด์ด๋‹ค.

const arr = [1, 2, 3];
const squares = arr.map(x => x * x);

//map ํ•จ์ˆ˜์—์„œ ์ธ์ž๋กœ ๋„˜์–ด๊ฐ„ ํ•จ์ˆ˜๋ฅผ ์›๋ž˜๋Œ€๋กœ ํ‘œํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
const squares = arr.map(function (x) { 
  return x * x;
});
  • Array ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์†Œ ๊ฐฏ์ˆ˜ ๋งŒํผ ๋ฐ˜๋ณตํ•˜๋ฉฐ, ๋ฐ˜๋ณตํ•  ๋•Œ๋งˆ๋‹ค ์‹คํ–‰ํ•  ํ•จ์ˆ˜๋ฅผ parameter๋กœ ์ „๋‹ฌํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ด callback ํ•จ์ˆ˜์—์„œ array์˜ ์š”์†Œ๋ฅผ ์ธ์ž(x)๋กœ ๋ฐ›๋Š”๋‹ค.

  • ํ•ด๋‹น ์š”์†Œ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์€๋Œ€๋กœ ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๊ณ  returnํ•ด์ฃผ๋ฉด, ํ•ด๋‹น index์˜ ์š”์†Œ๊ฐ€ return ๋œ ๊ฐ’์œผ๋กœ ์น˜ํ™˜๋œ๋‹ค.

Array.forEach()

  • for ๋Œ€์‹  ์‚ฌ์šฉํ•˜๋Š” ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ map๊ณผ์˜ ์ฐจ์ด๋Š” forEach ํ•จ์ˆ˜ ์ž์ฒด๊ฐ€ return ํ•˜๋Š” ๊ฒƒ๋„ ์•„๋ฌด๊ฒƒ๋„ ์—†๋‹ค. ๊ทธ๋ƒฅ forEack ํ•จ์ˆ˜๋ฅผ ํƒˆ์ถœํ•˜๊ณ  ์‹ถ์„ ๋•Œ return ํ•œ๋‹ค.

  • map์€ ์š”์†Œ๊ฐ€ ์ˆ˜์ •๋œ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์ด return ๋˜์—ˆ๋‹ค๋ฉด forEach๋Š” ๋‹จ์ง€ for๋ฌธ ๋Œ€์‹  ์‚ฌ์šฉํ•˜๋Š” ๋ฐ˜๋ณต method์ด๋‹ค.

let startWithNames = [];
let names = ['a', 'ab', 'cbb', 'ada'];

names.forEach(el => {   
  if (el.startsWith('a')) {     
    startWithNames.push(el);   
  } 
});

let hasC = false;
let arr = ['a', 'b', 'c', 'd'];

arr.forEach(el => {
  if (el === 'c') {
    hasC = true;
    return;
  }
});
  • forEach๋„ ํ•จ์ˆ˜์ด๋ฏ€๋กœ ์ค‘๊ฐ„์— ๋ฐ˜๋ณต๋ฌธ์„ ํƒˆ์ถœํ•˜๊ณ  ์‹ถ์œผ๋ฉด return;์„ ํ•ด์ค€๋‹ค.

  • ๋งŒ์•ฝ forEach์—์„œ ํ˜„์žฌ index๋ฅผ ์•Œ๊ณ  ์‹ถ์œผ๋ฉด ๋‘๋ฒˆ์งธ ์ธ์ž๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

let idxOfC = -1;
let arr = ['a', 'b', 'c', 'd'];

arr.forEach((el, idx) => {
  if (el === 'c') {
    idxOfC = idx;
    return;
  }
});

object again

๊ฐ์ฒด์˜ ํ‚ค๋ฅผ ๋ณ€์ˆ˜๋กœ ์ ‘๊ทผํ•˜๊ธฐ

  • ๊ฐ์ฒด์— ํŠน์ • ํ‚ค๋ฅผ ๋งŒ๋“ค๊ณ  ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ํ‚ค์™€ ๊ฐ’์„ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ๋ฐ›์•„์˜จ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•œ๋‹ค.
const information = {
  name: '๊น€๊ฐœ๋ฐœ'
}

const verb = 'developes'
const project = 'facebook'

information[verb] = project // [A]
information.developes = 'facebook' // [B]
  • A์™€ ๊ฐ™์ด ํ• ๋‹น์ด ๊ฐ€๋Šฅํ•˜๋‹ค. B์˜ ๋ฐฉ์‹์œผ๋กœ๋„ ํ• ๋‹น์ด ๊ฐ€๋Šฅํ•  ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ, ์ด ๊ฒฝ์šฐ ํ‚ค์™€ ๊ฐ’์€ ํ•ญ์ƒ ์ •ํ•ด์ ธ ์žˆ๊ฒŒ ๋œ๋‹ค.

  • ํ•˜์ง€๋งŒ A์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์€ ๋ณ€์ˆ˜ verb์™€ project๊ฐ€ ๊ฐ€์ง€๋Š” ๊ฐ’์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ํ‚ค์™€ ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฐ€์ง€๋Š”๊ฒŒ ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.

๊ฐ์ฒด ์ˆœํšŒํ•˜๊ธฐ

  • ๊ฐ์ฒด๋„ ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์ˆœํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋ฐฐ์—ด๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •ํ•ด์ง„ ์ˆœ์„œ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ์ˆœ์„œ์— ๋”ฐ๋ผ ๊ฐ์ฒด์˜ ํ‚ค์— ์ ‘๊ทผํ•˜๊ฒŒ ๋ ์ง€ ์•Œ ์ˆ˜ ์—†๋‹ค.(์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š์€ ์ˆœํšŒ)

Object.keys()

  • ์–ด๋–ค ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ‚ค๋“ค์˜ ๋ชฉ๋ก์„ ๋ฐฐ์—ด๋กœ ๋ฆฌํ„ดํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋กœ ๊ฐ์ฒด์˜ ๋‚ด์žฅ ๋ฉ”์†Œ๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐ์ฒด ์ƒ์„ฑ์ž์ธ oject๊ฐ€ ์ง์ ‘ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฉ”์†Œ๋“œ์ด๋‹ค.
const obj = {
  name: 'melon',
  weight: 4350,
  price: 16500,
  isFresh: true
}

Object.keys(obj) // ['name', 'weight', 'price', 'isFresh']
  • Object.keys ๋ฉ”์†Œ๋“œ๊ฐ€ ๋ฆฌํ„ดํ•˜๋Š” ๊ฐ’์€ ๋ฐฐ์—ด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
const keys = Object.keys(obj) // ['name', 'weight', 'price', 'isFresh']

for (let i = 0; i < keys.length; i++) {
  const key = keys[i] // ๊ฐ๊ฐ์˜ ํ‚ค
  const value = obj[key] // ๊ฐ๊ฐ์˜ ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ๊ฐ์˜ ๊ฐ’

  console.log(value)
}
  • ์ƒˆ๋กœ์šด ES6 ๋ฌธ๋ฒ•์—์„œ๋Š” Object.keys ์™ธ์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Object์ƒ์„ฑ์ž์˜ ๋ฉ”์†Œ๋“œ์ธ Object.values, Object.entries ์™€ ๊ฐ™์€ ์ž๋งคํ’ˆ๋“ค์ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.

  • Object.values ๋Š” ๊ฐ์ฒด์˜ ํ‚ค๊ฐ€ ์•„๋‹Œ ๊ฐ’์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•œ๋‹ค.

  • Object.entries ๋Š” ๊ฐ์ฒด์˜ ํ‚ค์™€ ๊ฐ’์˜ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๊ธธ์ด 2์งœ๋ฆฌ ๋ฐฐ์—ด๋กœ ์ด๋ฃจ์–ด์ง„, ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•œ๋‹ค.

  • ๊ฐ ๋ฐฐ์—ด์—์„œ ์ธ๋ฑ์Šค [0]์˜ ๊ฐ’์€ ๊ฐ๊ฐ์˜ ํ‚ค๋ฅผ, ์ธ๋ฑ์Šค [1]์˜ ๊ฐ’์€ ํ•ด๋‹น ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.

const values = Object.values(obj)
// values === ['melon', 4350, 16500, true]

const entries = Object.entries(obj)

/*
entries === [
  ['name', 'melon'],
  ['weight', 4350],
  ['price', 16500],
  ['isFresh', true]
]
*/

for-in

  • ๋ฐ˜๋ณต๋ฌธ์ธ for์™€ ๊ฐ™์€ ์ข…๋ฅ˜์˜ ๋ฌธ๋ฒ•์ด์ง€๋งŒ ๊ฐ์ฒด์™€ ๋ฐฐ์—ด์„ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ์กด์žฌํ•˜๋Š” ES6์—์„œ ์ถ”๊ฐ€๋œ ๋ฌธ๋ฒ•์ด๋‹ค.

  • ๊ฐ์ฒด๋ฅผ ์ˆœํšŒ ์™ธ์—๋„ ์ผ๋ฐ˜์ ์ธ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•  ๋•Œ๋„ ์œ ์šฉํ•œ๋ฐ, ๋ฐฐ์—ด์— ๋Œ€ํ•œ for๋ฌธ ์„ ์–ธ์‹œ ์“ฐ๋Š”
    " (let i = 0; i < arr.length; i ++) " ์ด๋Ÿฐ ๋ฌธ๋ฒ•์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ถ•์•ฝํ•œ ๋ฌธ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

for (let i in arr) {
  console.log(i)
  console.log(arr[i])
}
  • i๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๊ณ , ๋ฐฐ์—ด์˜ ๊ธธ์ด์™€ ๋น„๊ตํ•˜๊ณ , i๋ฅผ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๋“ฑ์˜ ์ฝ”๋“œ๋ฅผ ์ƒ๋žตํ• ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“  ES6 ๋ฌธ๋ฒ•์ด๋‹ค..

  • ์ด for-in ๋ฌธ์€ ์ธ๋ฑ์Šค์˜ ๊ฐ’์œผ๋กœ ๋ฌด์—‡์„ ํ• ๋‹นํ•˜๊ณ , ๋ฐ˜๋ณต๋ฌธ์ด ๋ช‡๋ฒˆ ๋Œ์•„์•ผ ํ•  ์ง€๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„ ๋‚ด๋ถ€์—์„œ ์ž๋™์œผ๋กœ ๊ฒฐ์ •ํ•˜๊ฒŒ ๋œ๋‹ค.

  • for-in๋ฌธ์€ ๋ฐฐ์—ด ๋ฟ ์•„๋‹ˆ๋ผ ๊ฐ์ฒด์—์„œ๋„ ์ž‘๋™ํ•˜๋Š”๋ฐ

const obj = {
  name: 'melon',
  weight: 4350,
  price: 16500,
  isFresh: true
}

for (let key in obj) {
  const value = obj[key]

  console.log(key)
  console.log(value)
}
  • ์ด๋ ‡๊ฒŒ ๊ฐ์ฒด๋ฅผ ๊ฐ€์ง€๊ณ  for-in ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด, for-in ๋ฌธ์˜ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ๋ณ€์ˆ˜๊ฐ€,
    ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฐ์ฒด์˜ ๊ฐ๊ฐ์˜ ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž์—ด์„ ํ• ๋‹น๋ฐ›๊ฒŒ ๋œ๋‹ค.

DOM(Document Object Model) Functions

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” html์— ์žˆ๋Š” ๋ชจ๋“  ์š”์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์™€์„œ (DOM ํ˜•ํƒœ์˜)๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.(๊ฐ์ฒด๋Š” ๋งŽ์€ ํ‚ค๋ฅผ ๊ฐ–๊ณ ์žˆ๋‹ค.)

  • ํŽ˜์ด์ง€์—์„œ ์„ ํƒํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ชจ๋‘ ๊ฐ์ฒด๊ฐ€ ๋œ๋‹ค.

//HTML ์—์„œ title ์ด๋ผ๋Š” id๋ฅผ ๊ฐ™๊ณ  ์žˆ๋Š” ํƒœ๊ทธ๋ฅผ ์„ ํƒํ•œ๋‹ค.
const title = document.getElementById("title");
//ํƒœ๊ทธ ์•ˆ์— ๋ฌธ์ž์—ด์•„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ”๋€๋‹ค.
title.innerHTML = "Hi! From JS";

title.style.color = "red";
console.log()
console.dir()

document.title = "hello";
//idfh ckwrl
const title = document.querySelector("#title");
title.innerHTML = "Hi! From JS";

Events and event handlers

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ด๋ฒคํŠธ์— ๋ฐ˜์‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋งŒ๋“ค์–ด์กŒ์œผ๋ฉฐ ์ด ์ด๋ฒคํŠธ๋ฅผ ์ค‘๊ฐ„์— ๊ฐ€๋กœ์ฑŒ ์ˆ˜ ์žˆ๋‹ค.

function handleResize(){
	console.log("i have been resized")
}

// ํ•จ์ˆ˜๋ฅผ ๋ฐ”๋กœ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ  ํ•„์š”ํ•  ๋•Œ ํ˜ธ์ถœํ•˜๊ฒŒ ํ•œ๋‹ค.
window.addEventListener("resize", handleResize())

//์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ• ๋•Œ๋งˆ๋‹ค ์ด๋ฒคํŠธ ๊ฐ์ฒด๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค.
function handleResize(event){
	console.log(event);
}

window.addEventListener("resize", handleResize())
  • ์ด๋ฒคํŠธ๋ฅผ ๋‹ค๋ฃฐ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค ๋•Œ ๋งˆ๋‹ค ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ž๋™์ ์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ๊ฐ์ฒด์— ๋ถ™์ธ๋‹ค.
const title = document.querySelector("#title");

function handleClick(){
	title.style.color = "red";
}

title.addEventListener("click", handleClick);

DOM - if else

//prompt๋Š” ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
const age = prompt("how old are you?")

if(age>18){
	console.log("you can't drink");
}else{
	console.log("you can't");
}
const base_color = "#34495e";
const other_color = "#7fgc8d"
function handleClick(){
	const currentColor = title.style.color;
    if (currentColor === base_color){
    	title.style.color = other_color;
    } else {
    	title.style.color = base_color;
    }
}

function init(){
	title.style.color = base_color;
    title.addEventListener("click", handleClick);
}

init();

[Ref]
https://kim-solshar.tistory.com/59
https://www.w3schools.com/jsref/jsref_obj_string.asp
https://www.w3schools.com/jsref/jsref_slice_string.asp
https://dasima.xyz/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-math-random-%EB%B2%94%EC%9C%84-%EC%9E%90%EB%A6%BF%EC%88%98/
https://www.w3schools.com/js/js_math.asp
https://velog.io/@dongwon2/TypeScript%EB%A5%BC-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-%EC%A0%84%EC%97%90-%EC%9D%B4%EC%A0%95%EB%8F%84%EB%8A%94-%ED%95%B4%EC%A4%98%EC%95%BC%EC%A7%80
http://www.songtory.com/post/001001/1/264
https://www.w3schools.com/js/js_switch.asp
https://www.robinwieruch.de/javascript-map-array/
https://javascript.info/string

0๊ฐœ์˜ ๋Œ“๊ธ€