TIL

TIL :: JavaScript / replit. 11~20

sophie0527 2022. 5. 17. 01:21

โ11. Function(ํ•จ์ˆ˜) - ๋ฐ์ดํ„ฐ ๋ฐ›๊ธฐ

โš ๏ธ ์ฃผ์˜ ์‚ฌํ•ญ

ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์ธ์ž๋กœ ๋ฐ›์€ ๋ณ€์ˆ˜์— ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋„ฃ์œผ๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.


Assignment

index.js๋ฅผ ๋ณด๊ณ  ์•„๋ž˜ ์กฐ๊ฑด์— ๋งž๋Š” ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

  1. ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ ๋ฐ›๋Š” isbiggerThanHundred ์ด๋ผ๋Š” ์ด๋ฆ„์˜ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”.
  2. isbiggerThanHundred ํ•จ์ˆ˜์—์„œ ๋ฐ›์€ argument๋ฅผ myNumber๋ผ๋Š” parameter์— ์ €์žฅํ•ด์ฃผ์„ธ์š”.
  3. isbiggerThanHundred ํ•จ์ˆ˜์—์„œ
    • myNumber๊ฐ€ 100๋ณด๋‹ค ํฌ๋ฉด "ํฌ๋‹ค!"๋ผ๋Š” ๋ฌธ์ž์—ด์„ return ํ•ด์ฃผ์„ธ์š”.
    • myNumber๊ฐ€ 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด "์ž‘๋‹ค!"๋ผ๋Š” ๋ฌธ์ž์—ด์„ return ํ•ด์ฃผ์„ธ์š”.
// Assignment
// ์•„๋ž˜์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.
function isbiggerThanHundred(num) {
  if(num > 100){
    return "ํฌ๋‹ค!";
  }else if(num<=100){
    return "์ž‘๋‹ค!";
  }
}
let myNumber = isbiggerThanHundred(10);
console.log(myNumber)

โ12. Function(ํ•จ์ˆ˜) - parameter, argument

โ—‰ ๋งค๊ฐœ ๋ณ€์ˆ˜(parameter) 

: ํ•จ์ˆ˜๋ฅผ ์ •์˜ ํ•˜๋ฉด์„œ, ํ•จ์ˆ˜ ์„ ์–ธ์‹์˜ ๊ด„ํ˜ธ()์•ˆ์— ์–ด๋–ค ๋ณ€์ˆ˜๋ช… ์„ ์“ฐ๋ฉด, ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฑธ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ๊ทธ ์ด๋ฆ„์ฒ˜๋Ÿผ ์‹ค์ œ๋กœ ํ•จ์ˆ˜ ์•ˆ์ชฝ์—์„œ ๋ณ€์ˆ˜์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ ๊ฐ’์„ ์ „๋‹ฌ๋ฐ›๊ฒŒ ๋˜๋ฉด ๋งค๊ฐœ ๋ณ€์ˆ˜์— ๊ฐ’์ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

 

โ—‰ ์ธ์ž(argument) 

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


Assignment

โœ”๏ธ Assignment 1 : ํ•จ์ˆ˜ halfNumber ๋ฅผ ์„ ์–ธํ•˜๊ณ  ๊ตฌํ˜„ํ•˜์„ธ์š”.

  1. ์ˆซ์ž๋กœ ๋œ ์ธ์ž ํ•˜๋‚˜๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค.
  2. ๋ฐ›์€ ๊ฐ’์„ 2๋กœ ๋‚˜๋ˆˆ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
  3. ๋งค๊ฐœ๋ณ€์ˆ˜ ์ด๋ฆ„์€ ๋งˆ์Œ๋Œ€๋กœ ์ •ํ•ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

โœ”๏ธ Assignment 2 : ํ•จ์ˆ˜ halfAndAddNumber๋ฅผ ์„ ์–ธํ•˜๊ณ  ๊ตฌํ˜„ํ•˜์„ธ์š”.

  1. ์ˆซ์ž๋กœ ๋œ ์ธ์ž ํ•˜๋‚˜๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค.
  2. 1๋ฒˆ ๋ฌธ์ œ์—์„œ ๋งŒ๋“ค์—ˆ๋˜ halfNumber๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด์„œ, ์ธ์ž๋กœ ๋ฐ›์•˜๋˜ ๊ฐ’์„ ๋‹ค์‹œ halfNumber ํ•จ์ˆ˜์— ์ „๋‹ฌํ•ด์ค๋‹ˆ๋‹ค.
  3. halfNumber์˜ ๋ฆฌํ„ด๊ฒฐ๊ณผ๋ฅผ ํ•จ์ˆ˜ ์•ˆ์ชฝ์—์„œ ๋ณ€์ˆ˜๋ช… result์— ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
  4. result์— 1์„ ๋”ํ•œ ๊ฐ’์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
// Assignment  ์•„๋ž˜์—์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”
function halfNumber(value) {
  return value / 2;
}
halfNumber(6);

function halfAndAddNumber(value) {
  let result = halfNumber(value)
  return result + 1;
}
console.log(halfAndAddNumber(10));

โ13. Function(ํ•จ์ˆ˜) - ์—ฌ๋Ÿฌ ์ธ์ž

: ํ•จ์ˆ˜์— ์ธ์ˆ˜๊ฐ€ ํ•œ ๊ฐœ๊ฐ€ ์•„๋‹Œ ์—ฌ๋Ÿฌ ๊ฐœ ์ „๋‹ฌํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

function alertSuccess(month, name) {
  alert(month + "์›”์˜ ๋‹น์ฒจ์ž๋Š” " + name + "์ž…๋‹ˆ๋‹ค.");
}

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

Assignment

index.js์—์„œ meetAt ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”.

  • ์ธ์ž๋ฅผ ์„ธ๊ฐœ ๋ฐ›์Šต๋‹ˆ๋‹ค.
    1. ์ฒซ๋ฒˆ์งธ ์ธ์ž๋Š” ๋…„๋„์— ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž์ž…๋‹ˆ๋‹ค.
    2. ๋‘๋ฒˆ์งธ ์ธ์ž๋Š” ์›”์— ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž์ž…๋‹ˆ๋‹ค.
    3. ์„ธ๋ฒˆ์งธ ์ธ์ž๋Š” ์ผ์— ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž์ž…๋‹ˆ๋‹ค.
  • ๋…„๋„ ์ธ์ž๋งŒ ๋ฐ›์•˜์„ ๊ฒฝ์šฐ → "1234๋…„" ๊ณผ ๊ฐ™์€ ํ˜•์‹์˜ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ด ํ•ด์ฃผ์„ธ์š”.
  • ๋…„๋„,์›” ์ธ์ž๋ฅผ ๋ฐ›์•˜์„ ๊ฒฝ์šฐ → ๋…„๋„์™€ ์›”์„ ์กฐํ•ฉํ•ด์„œ "1234๋…„ 5์›”" ๊ณผ ๊ฐ™์€ ํ˜•์‹์˜ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ด ํ•ด์ฃผ์„ธ์š”.
meetAt(2022); // ๊ฒฐ๊ณผ --> "2022๋…„"
meetAt(2032, 3); // ๊ฒฐ๊ณผ --> "2032๋…„ 3์›”"
meetAt(1987, 10, 28); // ๊ฒฐ๊ณผ --> "1987/10/28"
// Assignment. ์•„๋ž˜์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

function meetAt(year, month, date) {
  if(date) { return year + '/' + month + '/' + date;}
  if(month) { return year + '๋…„ ' + month + '์›”';}
  if(year) { return year + '๋…„';}
}
console.log(meetAt(2020))
console.log(meetAt(2020,5))
console.log(meetAt(2020,5,16))

โ14. Function(ํ•จ์ˆ˜) - ๋ฐ์ดํ„ฐ ๋ฐ˜ํ™˜ํ•˜๊ธฐ(2)

โ—‰ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ๋‹ค๋ฅธ ํ•จ์ˆ˜ ํ˜ธ์ถœํ•˜๊ธฐ 

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

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

const result = calculateTotal(3500);
console.log(result);

์ด๋ ‡๊ฒŒ ํ•จ์ˆ˜ ์•ˆ์—์„œ ๋˜ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. calculateTotal ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ getTax๋ฅผ ๋˜ ํ˜ธ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๋Š” ์‹œ์ ์€ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ˆœ๊ฐ„์ด๊ฒ ์ฃ ? ์œ„ ์ฝ”๋“œ์—์„œ function์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ๋ถ€๋ถ„์€ "์ด๋Ÿฐ ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค"๊ณ  ์„ ์–ธํ•ด์ค€ ๊ฒƒ ๋ฟ์ž…๋‹ˆ๋‹ค. ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๋Š” ์‹œ์ ์€ ๋ฐ”๋กœ calculateTotal(3500)์œผ๋กœ ํ˜ธ์ถœ ํ–ˆ์„ ๋•Œ ์ž…๋‹ˆ๋‹ค.


Assignment

index.js์—์„œ getTotal ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”.

getTotal ํ•จ์ˆ˜๋Š” ๊ฐ€๊ฒฉ์„ 2๊ฐœ ๋ฐ›์•„์„œ calculateTotal ํ˜ธ์ถœ ๋ฐ˜ํ™˜๊ฐ’์„ ๋”ํ•ด์„œ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

  • getTotal ์ด๋ผ๋Š” ์ด๋ฆ„์˜ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”. ๊ฐ€๊ฒฉ์ •๋ณด 2๊ฐœ๋ฅผ ์ธ์ž๋กœ ๋ฐ›์Šต๋‹ˆ๋‹ค.
  • ์ธ์ž์ด๋ฆ„์€ ์›ํ•˜๋Š”๋Œ€๋กœ ์ง€์–ด์ฃผ์…”๋„ ๋ฉ๋‹ˆ๋‹ค.
  • getTotal ํ•จ์ˆ˜์—์„œ ์ธ์ž๋กœ ๋ฐ›์€ ๊ฐ€๊ฒฉ์œผ๋กœ ๊ฐ๊ฐ calculateTotal ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์ฃผ์„ธ์š”. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ฒฐ๊ณผ๊ฐ’์„ ๋”ํ•ด์„œ ๋ฐ˜ํ™˜ํ•ด์ฃผ์„ธ์š”.

์ฐธ๊ณ ์‚ฌํ•ญ

  • getTax ํ•จ์ˆ˜๋Š” ๊ฐ€๊ฒฉ์˜ tax๋ฅผ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • calculateTotal ํ•จ์ˆ˜๋Š” ์ƒํ’ˆ์˜ ๊ฐ€๊ฒฉ์— tax๋ฅผ ๋”ํ•œ ๊ฐ’์„ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • getTotal ํ•จ์ˆ˜๋Š” ๋‘ ์ƒํ’ˆ์˜ ๊ฐ€๊ฒฉ์„ ๋”ํ•ด์„œ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
//assignment
function getTotal(price1, price2) {
  return calculateTotal(price1) + calculateTotal(price2);
}
function calculateTotal(price) {
  return price + price * 0.1;
}
  
console.log(calculateTotal(500));

โ15. Array (๋ฐฐ์—ด)

โ—‰ ๋ฐฐ์—ด์˜ ์ •์˜ ๋ฐ ํŠน์ง•

: ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ช‡ ์ฒœ ๊ฐœ์˜ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ , ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜์— ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ–๊ณ  ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐ์—ด์€ ๋Œ€๊ด„ํ˜ธ([])๋กœ ๊ฐ์‹ธ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

let cities = ["์„œ์šธ", "๋Œ€์ „", "๋Œ€๊ตฌ", "๋ถ€์‚ฐ", "๊ด‘์ฃผ", "์ œ์ฃผ๋„"];
let KOSPI = [2062.82, 2053.2, 2045.92, 2058.82, 2053.12, 2055.7];

์š”์†Œ์™€ ์š”์†Œ ์‚ฌ์ด์—๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์š”์†Œ ์ž๋ฆฌ์—๋Š” ์ด์ œ๊นŒ์ง€ ๋ฐฐ์šด String, Number, Array ๋ชจ๋‘ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

let anything = ["๋Œ€์ „", 1987, ["ํ•˜๋‚˜", "๋‘˜", 3]];

 

โ—‰ ๋ฐฐ์—ด์˜ Index 

: ๋ฐฐ์—ด์˜ ์š”์†Œ๋Š” ์ˆœ์„œ(index)๋ฅผ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์˜ํ•ด์•ผ ํ•  ํŠน์ง•์ด ์žˆ๋‹ค๋ฉด ์ด index๋Š” 1์ด ์•„๋‹ˆ๋ผ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

var anything = ["๋Œ€์ „", 1987, ["ํ•˜๋‚˜", "๋‘˜", 3]];

Stringํ˜•์ธ "๋Œ€์ „"์€ index๊ฐ€ 0, Numberํ˜•์ธ 1987์€ index๊ฐ€ 1, Arrayํ˜•์ธ ["ํ•˜๋‚˜", "๋‘˜", 3]์€ index๊ฐ€ 2์ž…๋‹ˆ๋‹ค.

 

 

โ—‰ ๋ฐฐ์—ด ๋ฐ์ดํ„ฐ์˜ ์ ‘๊ทผ

index๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

var anything = ["๋Œ€์ „", 1987, ["ํ•˜๋‚˜", "๋‘˜", 3]];

console.log(anything[0]);
console.log(anything[1]);
console.log(anything[2]);

alert(anything[0] + "์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.");

Assignment

1. ์•„๋ž˜ ์กฐ๊ฑด์„ ์ฝ๊ณ  ์ดํ–‰ํ•ด์ฃผ์„ธ์š”.

  • getElement ํ•จ์ˆ˜์•ˆ์— arr ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ–ˆ์Šต๋‹ˆ๋‹ค.
  • arr ๋ณ€์ˆ˜๋Š” ๋ฐฐ์—ด์„ ํ• ๋‹นํ–ˆ๊ณ ์š”, ๋ฐฐ์—ด์—๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ์š”์†Œ๊ฐ€ ๋“ค์–ด์žˆ๋„ค์š”!
  • ๋ฐฐ์—ด์ด ๋‹ด๊ธด arr ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜์—ฌ getElement ํ•จ์ˆ˜๊ฐ€ "array" ๋ผ๋Š” ๋ฌธ์ž์—ด์„ return ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ์„ธ์š”.

2. addFirstAndLast ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

  • addFirstAndLast ํ•จ์ˆ˜์— ์ฃผ์–ด์ง„ ์ธ์ž myArray๋Š” ์ˆซ์ž ๊ฐ’์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ array ์ž…๋‹ˆ๋‹ค.
  • addFirstAndLast ํ•จ์ˆ˜์— ์ฃผ์–ด์ง„ ์ธ์ž myArray ์˜ ์ฒซ๋ฒˆ์งธ element์™€ ๋งˆ์ง€๋ง‰ element์˜ ๊ฐ’์„ ๋”ํ•œ ๊ฐ’์„ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”.
  • ๋งŒ์ผ myArray์— ํ•œ ๊ฐœ์˜ ์š”์†Œ๋งŒ ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ์š”์†Œ์˜ ๊ฐ’์„ ๋ฆฌํ„ดํ•ด ์ฃผ์‹œ๊ณ  ์š”์†Œ๊ฐ€ ์—†๋Š” ๋น„์–ด์žˆ๋Š” array๋ผ๋ฉด 0์„ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”.
  • Hint) array์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š” : https://community.wecode.co.kr/t/js-array/200/2
 

wecode - wecode

wecode

community.wecode.co.kr

// Assignment1 - ๋‹ค์Œ ํ•จ์ˆ˜ ์•ˆ์— ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜์„ธ์š”

function getElement() {
  let arr = [3, [4, ["array", 9], 2+3], [0]];
  return arr[1][1][0];
}
console.log(getElement())


// Assignment2 - ๋‹ค์Œ ํ•จ์ˆ˜ ์•ˆ์— ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜์„ธ์š”
// ex) myArray = [3, 2, 5];
function addFirstAndLast(myArray) {
  if(myArray.length>1){
    return myArray[0]+myArray[myArray.length-1]
  } if(myArray.length==1){
    return myArray[0];
  } else{
    return 0;
  }
}
console.log(addFirstAndLast ([3, 2, 5]))

โ16. for ๋ฌธ(๋ฐ˜๋ณต๋ฌธ)

์šฐ๋ฆฌ๊ฐ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ฐฐ์šฐ๋Š” ๊ฐ€์žฅ ํฐ ์ด์œ ๋Š” ๋‹จ์ˆœ ๋ฐ˜๋ณต์„ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ๊ฐ€ ์•„๋‹๊นŒ์š”? ์ด๋ ‡๊ฒŒ ๋น„ํšจ์œจ์ ์ธ ์ฝ”๋“œ๋ฅผ for ๋ฐ˜๋ณต ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ์งง๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

for ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ์›ํ•˜๋Š” ๋งŒํผ ๋ฐ˜๋ณต์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹คํ–‰ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์–ธ์ œ๋ถ€ํ„ฐ ์–ธ์ œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋ผ๊ณ  ์•Œ๋ ค์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

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

for (let i = 0; i <= 5; i++) {
   if (cities[i] === home) {     
 	    console.log("์•„, "+ cities[i] +" ์‚ฌ์‹œ๋Š”๊ตฐ์š”");
   }
}
  • i ๊ฐ€ 0์ผ ๋•Œ, cities[0] ๊ณผ home ์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.
  • "์„œ์šธ" === "๋Œ€์ „"
  • false ์ด๋ฏ€๋กœ if ๋ฌธ {} ๋‚ด๋ถ€๋กœ ๋“ค์–ด๊ฐ€์ง€ ์•Š๊ณ  i ๊ฐ€ 0์ผ๋•Œ์˜ for ๋ฌธ์€ ๋๋‚ฉ๋‹ˆ๋‹ค.
  • ๊ทธ ๋‹ค์Œ, i ๊ฐ€ 1์ด ์ฆ๊ฐ€ํ•˜์—ฌ i ๊ฐ€ 1์ด ๋˜๋ฉด, cities[1] ๊ณผ home ์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.
  • "๋Œ€์ „" === "๋Œ€์ „"
  • true ์ด๋ฏ€๋กœ if ๋ฌธ์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
  • ์ด๋ ‡๊ฒŒ i ๊ฐ€ 5๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ if ์กฐ๊ฑด์„ ํ™•์ธํ•˜๋ฉฐ for ๋ฌธ์ด ์‹คํ–‰๋˜๊ณ  ์ข…๋ฃŒ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด ๋ฐ˜๋ณต์ด ๋งˆ๋ฌด๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
  • ๋งŒ์•ฝ ๋ฐฐ์—ด์ด ์•„๋ž˜์™€ ๊ฐ™์•˜๋‹ค๋ฉด console.log ๊ฐ€ ์„ธ๋ฒˆ ๋–ด์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
const cities = ["์„œ์šธ", "๋Œ€์ „", "๋Œ€๊ตฌ", "๋Œ€์ „", "๊ด‘์ฃผ", "๋Œ€์ „"];

for ๋ฌธ์—์„œ i ๊ฐ€ 1, 3, 5์ผ ๋•Œ if ๋ฌธ์ด ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด์ฃ .

 

โ—‰ ๋ฐ˜๋ณต๋ฌธ๊ณผ ๋ฐฐ์—ด์˜ ๊ธธ์ด

๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ์•Œ๋ฉด ๊ทธ๋งŒํผ for ๋ฌธ์„ ๋ฐ˜๋ณตํ•˜๋ฉด ๋˜๊ฒ ์ฃ . ๋ฐฐ์—ด์€ length ๋ผ๋Š” ์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

let cities = ["์„œ์šธ", "๋Œ€์ „", "๋Œ€๊ตฌ", "๋Œ€์ „", "๊ด‘์ฃผ", "๋Œ€์ „"];
console.log(cities.length) // cities ๋ฐฐ์—ด์˜ ์š”์†Œ๋Š” ์ด 6๊ฐœ ์ด๋ฏ€๋กœ 6 ์ด๋ผ๋Š” ์ˆซ์ž๊ฐ€ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

for (var i = 0; i < cities.length; i++) {
   if (cities[i] === home) {
     alert("์•„, ์—ฌ๊ธฐ ์‚ฌ์‹œ๋Š”๊ตฐ์š”");
   }
}
  • for (var i = 0; i*<*cities.length; i++)*
  • ๊ฐ€์šด๋ฐ ๋น„๊ต์—ฐ์‚ฐ์ž๋ฅผ ์ฃผ์˜ํ•˜์„ธ์š”. <= ๊ฐ€ ์•„๋‹Œ < ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐฐ์—ด์˜ ๊ธธ์ด๋Š” 6 ์ด๋ฏ€๋กœ ์ด 6๋ฒˆ์˜ ๋ฐ˜๋ณต๋ฌธ์ด ์‹คํ–‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • i ๋Š” 0๋ถ€ํ„ฐ 5๊นŒ์ง€ ์ด 6๋ฒˆ์ด ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ณด๋‹ค ์ž‘์„๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต๋ฌธ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ๋งŒ์•ฝ <= ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค๋Š” ๋น„๊ต์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด
  • i ๋Š” 0,1,2,3,4,5,6 ๊นŒ์ง€ ์‹คํ–‰๋˜์–ด ์ด 7๋ฒˆ์˜ ๋ฐ˜๋ณต๋ฌธ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Assignment

findSmallestElement ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ด ์ฃผ์„ธ์š”.

  • findSmallestElement ์˜ arr ์ธ์ž๋Š” ์ˆซ์ž ๊ฐ’์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
  • arr ์˜ ๊ฐ’๋“ค ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๋ฆฌํ„ด ํ•ด์ฃผ์„ธ์š”.
  • ๋งŒ์ผ arr ๊ฐ€ ๋น„์–ด์žˆ์œผ๋ฉด 0์„ ๋ฆฌํ„ด ํ•ด์ฃผ์„ธ์š”.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฐ์—ด์ด ์ธ์ž(input)์œผ๋กœ ๋“ค์–ด์™”๋‹ค๋ฉด 1์ด ๋ฆฌํ„ด ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
[20, 200, 23, 1, 3, 9]
// Assignment - ๋‹ค์Œ ํ•จ์ˆ˜ ์•ˆ์— ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜์„ธ์š”
function findSmallestElement(arr) {
  // your code here
  if (arr.length === 0) {
    return 0; // ๋ฐฐ์—ด์ด ๋น„์–ด์žˆ์œผ๋ฉด 0์„ ๋ฆฌํ„ด  
  } else {
    let smallest = arr[0]; //๋ฐฐ์—ด์˜ ์ฒซ๋ฒˆ์งธ ๊ฐ’์„ ์ž‘์€ ๊ฐ’์œผ๋กœ ์ž„์˜ ์ง€์ •
    for (let i = 0; i < arr.length; i++) {
      if (arr[i] < smallest) {
        smallest = arr[i]; //for ๋ฃจํ”„๋ฅผ ๋Œ๋ฉด์„œ smallest๋ณด๋‹ค ์ž‘์€ ๊ฐ’์ด ์กด์žฌํ•˜๋ฉด ํ•ด๋‹น ๊ฐ’์„ smallest๋กœ ์ง€์ •
      }
    }
    return smallest; // ๋ฃจํ”„ ์ข…๋ฃŒ ํ›„ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’ ๋ฆฌํ„ด
  }
}

โ17. ๋ฐฐ์—ด ์กฐ์ž‘ํ•˜๊ธฐ

โ—‰ ์š”์†Œ์ถ”๊ฐ€ 

let cities = []; //์š”์†Œ์—†๋Š” ๋ฐฐ์—ด์„ ์„ ์–ธํ–ˆ์Šต๋‹ˆ๋‹ค.
cities[0] = "์„œ์šธ"; // ["์„œ์šธ"]
cities[1] = "๋Œ€์ „"; // ["์„œ์šธ", "๋Œ€์ „"]
cities[2] = "๋Œ€๊ตฌ"; // ["์„œ์šธ", "๋Œ€์ „", "๋Œ€๊ตฌ"]

//cities ๋ผ๋Š” ๋ณ€์ˆ˜์— ๋นˆ ๋ฐฐ์—ด์„ ํ• ๋‹นํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด ์š”์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ—‰ push / unshift ๋ฉ”์†Œ๋“œ 

push() , unshift() ๋ฉ”์†Œ๋“œ๋Š” ๋ฐฐ์—ด์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

  • push ๋Š” ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„, ์ฆ‰ ๊ผฌ๋ฆฌ์— ์š”์†Œ๋“ค์„ ์ถ”๊ฐ€
  • unshift๋Š” ๋ฐฐ์—ด์˜ ๋งจ ์•ž๋ถ€๋ถ„, ์ฆ‰ ๋จธ๋ฆฌ ๋ถ€๋ถ„์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€
let cities = [];
cities.push("๊ฒฝ์ฃผ", "์ „์ฃผ");
cities.unshift("์ธ์ฒœ");

console.log(cities);

โ– ์ •๋ฆฌํ•˜์ž๋ฉด, ๋ฐฐ์—ด ์กฐ์ž‘ ๋ฐฉ๋ฒ•์—๋Š” 2๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. index๋กœ ์ ‘๊ทผํ•˜์—ฌ ์ˆ˜์ •์ด๋‚˜ ์ถ”๊ฐ€
  2. push, unshift ๋ฉ”์†Œ๋“œ๋กœ ์ถ”๊ฐ€
let day = ['m', 's', 'w', 't'];
day[1] = 't';
day[4] = 'f';
day[5] = 's'; // ๋ฐฉ๋ฒ• (1)

let month = [1, 2, 3, 4]
month.push(5); // ๋ฐฉ๋ฒ• (2)

 

โ—‰ pop ๋ฉ”์†Œ๋“œ 

pop ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋งˆ์ง€๋ง‰ ์š”์†Œ๊ฐ€ ์ œ๊ฑฐ๋˜๊ณ , ๋งˆ์ง€๋ง‰ ์š”์†Œ์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.


Assignment

divideArrayInHalf ํ•จ์ˆ˜๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ˜„ํ•ด์ฃผ์„ธ์š”.

  • divideArrayInHalf ํ•จ์ˆ˜๋Š” array๋ฅผ ์ธ์ž๋กœ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ด array๋Š” ์ˆซ์ž ๊ฐ’์œผ๋กœ ๋งŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ ์ด 5๊ฐœ์˜ ์š”์†Œ(element)๋“ค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • divideArrayInHalf ํ•จ์ˆ˜๋Š” ์ธ์ž๋กœ ๋“ค์–ด์˜จ array ๋กœ ๋ถ€ํ„ฐ ์ƒˆ๋กญ๊ฒŒ ๊ตฌ์„ฑ๋œ ๋ฐฐ์—ด result ์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.
  • array ์š”์†Œ๋“ค ์ค‘ 10๊ณผ ๊ฐ™๊ฑฐ๋‚˜ ์ž‘์€ ๊ฐ’์˜ ์š”์†Œ๋“ค์€ result์˜ ๋งจ ์•ž์œผ๋กœ, 10๋ณด๋‹ค ํฐ ๊ฐ’์˜ ์š”์†Œ๋“ค์€ result์˜ ๋งจ ๋’ค๋กœ ์žฌ๊ตฌ์„ฑ๋œ ๋ฐฐ์—ด์„ ๋ฆฌํ„ด ํ•ด์ฃผ์„ธ์š”.
  • ์žฌ๊ตฌ์„ฑ์ด ๋˜๋Š” ์ˆœ์„œ๋Š” array์˜ ๋งจ ๋’ค ์š”์†Œ๋ถ€ํ„ฐ ๋งจ ์•ž ์š”์†Œ๊นŒ์ง€ ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋ฐฐ์—ด์˜ ๋’ท ์š”์†Œ ๋ถ€ํ„ฐ ์žฌ๊ตฌ์„ฑ์„ ์ง„ํ–‰ํ•ด์ฃผ์„ธ์š”.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ์ธ์ž๋กœ ๋“ค์–ด์˜ค๋Š” array๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๋•Œ,
[1, 20, 10, 5, 100]

result ๋ฐฐ์—ด์ด ๋งŒ๋“ค์–ด ์ง€๋Š” ์ˆœ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • [100]
  • [5, 100]
  • [10, 5, 100]
  • [10, 5, 100, 20]
  • [1, 10, 5, 100, 20]

๋”ฐ๋ผ์„œ ์•„๋ž˜์™€ ๊ฐ™์€ result๊ฐ€ ๋ฆฌํ„ด ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

[1, 10, 5, 100, 20]
// Assignment - ๋‹ค์Œ ํ•จ์ˆ˜ ์•ˆ์— ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜์„ธ์š”
function divideArrayInHalf(array) {
    let result = [];
    for(let i = array.length; i>=0; i--){
      if(array[i] <= 10){
        result.unshift(array[i]);
      }else if(array[i] > 10){
        result.push(array[i]);
      }
    }
    return result;
}

โ18. ๋ฐ์ดํ„ฐ ํƒ€์ž…

โœ”๏ธ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜• (Primitive) ์ธ ์—ฌ์„ฏ ๊ฐ€์ง€ ๋ฐ์ดํ„ฐ ํƒ€์ž…

  • String (๋ฌธ์ž์—ด)
  • Number (์ˆซ์ž)
  • Boolean (true/false)
  • Undefined
  • Null
  • Symbol (ECMAScript 6 ์— ์ถ”๊ฐ€๋จ)

โœ”๏ธ ๋ณ„๋„๋กœ Object(๊ฐ์ฒด) ๋„ ์žˆ์Œ

 

โ—‰ typeof ์—ฐ์‚ฐ์ž 

  • typeof ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ์ด ๊ฐ’, ์ด ๋ณ€์ˆ˜๋Š” ๋ฌด์Šจ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ธ์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • typeof ์—ฐ์‚ฐ์ž๋ฅผ ์ ์šฉํ•˜๋ฉด ๋‹ค์Œ ๋ฌธ์ž์—ด ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
    1. "undefined" : ์ •์˜๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜
    2. "boolean"
    3. "string"
    4. "number"
    5. "object" : ํ•จ์ˆ˜๋ฅผ ์ œ์™ธํ•œ ๊ฐ์ฒด ๋˜๋Š” "object"
    6. "function"
let msg = "message";

console.log(typeof msg); // "string"
console.log(typeof 100); // "number"

:: typeof null

  • typeof null  "object"
  • null ์ด๋ผ๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด object ๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.
  • null ์€ ๋นˆ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์–ด์„œ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.
  • ์ด ๋‚ด์šฉ์€ ๋’ค์—์„œ ์ถ”๊ฐ€๋กœ ํ•™์Šตํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

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

console.log(typeof []);
  • ๋ฐฐ์—ด์˜ type์„ ํ™•์ธํ•ด๋ณด๋ฉด "object"์ž…๋‹ˆ๋‹ค.
  • ์™œ๋ƒํ•˜๋ฉด ์‚ฌ์‹ค ๋ฐฐ์—ด์€ ํ™•์žฅ๋œ ๊ฐ์ฒด ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค...!
  • ์ผ๋‹จ typeof ์—ฐ์‚ฐ์ž๋กœ ๋ฐฐ์—ด์„ ํ™•์ธํ•˜๋ฉด "object" ๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค๋Š” ๊ฒƒ๋งŒ ๊ธฐ์–ตํ•˜์‹œ๊ณ  ๋„˜์–ด๊ฐ€์ฃผ์„ธ์š”.

โ—‰ Number (์ˆซ์ž)

  • Number ๋ผ๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ์ˆซ์ž๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • Number ํƒ€์ž…์—์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์—ฐ์‚ฐ์ž…๋‹ˆ๋‹ค.
  • ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Number ํƒ€์ž…์— ๋Œ€ํ•œ ์—ฐ์‚ฐ์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
1 + 1 // ๋”ํ•˜๊ธฐ
2 - 1 // ๋นผ๊ธฐ
2 * 4 // ๊ณฑํ•˜๊ธฐ
6 / 2 // ๋‚˜๋ˆ„๊ธฐ
  • ๋”ํ•˜๊ธฐ(+)๋Š” ์™ผ์ชฝ ๊ฐ’๊ณผ ์˜ค๋ฅธ์ชฝ ๊ฐ’์„ ๋”ํ•ด์„œ ํ•˜๋‚˜์˜ ๊ฐ’์„ ๋งŒ๋“ ๋‹ค๋Š” ์ ์—์„œ ์ดํ•ญ ์—ฐ์‚ฐ์ž๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.
  • ์ดํ•ญ ์—ฐ์‚ฐ์ž ์ค‘์—์„œ ์‚ฐ์ˆ˜๋ฅผ ํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

โ—‰ String (๋ฌธ์ž์—ด) 

  • ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ๋”ฐ์˜ดํ‘œ(" ") ํ˜น์€ ์ž‘์€๋”ฐ์˜ดํ‘œ(' ')๋กœ ๊ฐ์‹ผ ๋ชจ๋“  ํ‘œํ˜„์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.
  • ์ฃผ์˜) ํฐ๋”ฐ์˜ดํ‘œ๋กœ ์‹œ์ž‘ํ•˜๋ฉด ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๋๋‚˜๊ณ , ์ž‘์€๋”ฐ์˜ดํ‘œ๋กœ ์‹œ์ž‘ํ•˜๋ฉด ์ž‘์€๋”ฐ์˜คํ‘œ๋กœ ๋๋‚˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ์ˆซ์ž ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ฌธ์ž์—ด ํƒ€์ž…์—๋„ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
// ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ณ€์ˆ˜ ์„ ์–ธ
let name = "wecode";

// .length >> ๋ฌธ์ž์—ด์ด ๋ช‡ ๊ธ€์ž๋กœ ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ
name.length // 5

// .toUpperCase >> ๋ฌธ์ž์—ด์„ ๋Œ€๋ฌธ์ž๋กœ ์ถœ๋ ฅ
name.toUpperCase() // "WECODE"

// .indexOf >> ํŠน์ • ํ…์ŠคํŠธ์˜ ํฌํ•จ ์œ ๋ฌด ๋ฐ ์œ„์น˜ ํ™•์ธ
name.indexOf('c') // 2
name.indexOf('j') // -1

โ˜‘๏ธ ๋ฌธ์ž์—ด + ๋ฌธ์ž์—ด

  • ํ…์ŠคํŠธ๋ฅผ ์„œ๋กœ ์กฐํ•ฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ…์ŠคํŠธ๋ฅผ ์กฐํ•ฉํ•  ๋•Œ๋Š” + ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ํ…์ŠคํŠธ์™€ ๋ณ€์ˆ˜๋ฅผ ์กฐํ•ฉํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์•„๋ž˜๋Š” ๋ชจ๋‘ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.
let message = "๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค., ";
let userName = "๊น€๊ฐœ๋ฐœ";
let banger = "๋‹˜!";
let customMess = message + userName + banger;
console.log(customMess);

โ˜‘๏ธ ๋ฌธ์ž์—ด + ์ˆซ์ž ์กฐํ•ฉ

alert("2 ๋”ํ•˜๊ธฐ 2๋Š” " + 2 + 2);

  • ์œ„์™€ ๊ฐ™์ด ์„œ๋กœ ๋‹ค๋ฅธ type์ธ String + Number๋ฅผ ์‹œ๋„ํ•  ๋•Œ๋Š” ํ•ญ์ƒ ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • String๊ณผ Numberํ˜•์„ ๋”ํ•˜๋ฉด ํ•ญ์ƒ String ํ˜•์œผ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.
  • ์›๋ž˜ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ type์ธ String๊ณผ Number๋Š” ์„œ๋กœ ๋”ํ•˜๊ฑฐ๋‚˜ ๋บ„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ํ•˜์ง€๋งŒ JavaScript ์—์„œ๋Š” ์˜ค๋ฅ˜๋ฅผ ๋‚ด์ง€ ์•Š๊ณ  ๋”ํ•˜๊ฒŒ ๋˜์ฃ .
  • ์ด๋Ÿฐ ๊ฒƒ์„ ์œ ์—ฐ ํ•˜๋‹ค๊ณ  ์ข‹์•„ํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋„ ์žˆ์ง€๋งŒ, ์—๋Ÿฌ๋ฅผ ๋‚ผ ์—ฌ์ง€๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— JavaScript ์˜ ๋‹จ์ ์œผ๋กœ ๊ผฝ๋Š” ๊ฐœ๋ฐœ์ž๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ž์—ด์ด๋ƒ ์ˆซ์ž๋ƒ์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ€ ๋งŽ์ด ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ •ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์— ๊ด€์‹ฌ์„ ๊ฐ€์งˆ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

โ—‰ boolean 

  • boolean ์€ ๋‹จ ๋‘ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ž…๋‹ˆ๋‹ค. → true / false
  • boolean ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ˜๋ณต๋ฌธ์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด boolean ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜๋˜๋Š” ์—ฌ๋Ÿฌ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

:: ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ boolean ๊ฐ’ ๋ณ€ํ™˜

 

โœ”๏ธ true ๋กœ ๋ณ€ํ™˜๋˜๋Š” ๊ฐ’

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

โœ”๏ธ false ๋กœ ๋ณ€ํ™˜๋˜๋Š” ๊ฐ’

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

 

:: ์กฐ๊ฑด๋ฌธ์—์„œ์˜ boolean ๋ฐ์ดํ„ฐ ๊ฐ’ ํ™œ์šฉ

  • ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด boolean ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ ๋˜๋Š” ๊ฒƒ์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์กฐ๊ฑด๋ฌธ์—์„œ ํ™œ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • (์กฐ๊ฑด๋ฌธ์€ ์ถ”ํ›„ ์ž์„ธํžˆ ๋‹ค๋ฃฐ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.)
  • if ์กฐ๊ฑด๋ฌธ์€ ํŠน์ • ์กฐ๊ฑด์˜ true/false ๊ฐ’์„ ํŒ๋‹จํ•˜์—ฌ if๋ฌธ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
let sam = 3;

if (sam === 3) {  //sam === 3 ์ด true์ด๋ฉด
  // ์‹คํ–‰
}

โ—‰ undefined 

  • undefined ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ๋ง ๊ทธ๋Œ€๋กœ ์ •์˜๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ž…๋‹ˆ๋‹ค.
  • let, const ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•  ๋•Œ ์ดˆ๊ธฐํ™” ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด, ์ฆ‰ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ๋งŒ ํ•˜๊ณ  ๊ฐ’์„ ํ• ๋‹นํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๋ณ€์ˆ˜์—๋Š” undefined ๊ฐ€ ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค.
let msg;
console.log(msg === undefined); //true (msg๋Š” ์„ ์–ธ๋งŒ ํ•˜๊ณ , ์ดˆ๊ธฐํ™” ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.)

 

โ—‰ null 

  • null ํƒ€์ž…์€ ๋ฐ์ดํ„ฐ ํƒ€์ž… ์ค‘ ํ•˜๋‚˜ ์ž…๋‹ˆ๋‹ค.
  • ํ•˜์ง€๋งŒ ์ฝ˜์†”์— typeof null ๋กœ ํ™•์ธํ•ด๋ณด๋ฉด "object" ๋ผ๊ณ  ๋‚˜์˜ต๋‹ˆ๋‹ค.
  • null ์€ ๋ง๊ทธ๋Œ€๋กœ ์•„๋ฌด๊ฒƒ๋„ ์•„๋‹Œ ๋นˆ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ์–ด์„œ "object" ๋ผ๊ณ  ๋‚˜์˜ต๋‹ˆ๋‹ค.

โ—‰ ๊ฐ์ฒด(Object) 

  • ๋งˆ์ง€๋ง‰์€ ๊ฐ์ฒด(Object) ๋ฐ์ดํ„ฐ ํƒ€์ž…์ž…๋‹ˆ๋‹ค.
  • ๊ฐ์ฒด๋Š” ํ‚ค(Key)์™€ ๊ฐ’(Value)์˜ ์กฐํ•ฉ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค.
  • ์ค‘๊ด„ํ˜ธ๋กœ ๊ฐ์‹ธ์ง„ key-value(property)์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค.
const person = {
	name : "wecode",
	age : 30,
	skills : ['HTML', 'CSS', 'Javascript'] 
}

โ19. String

let good = '์ด๊ฒƒ๋„ ๋งž๊ณ ';
let better = "์ด๊ฒƒ๋„ ๋งž์Šต๋‹ˆ๋‹ค";
//'',"" ๋‘˜๋‹ค Stringํ˜• ์ด๋‹ค.

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

  • toUpperCase ๋ฉ”์†Œ๋“œ
  • toLowerCase ๋ฉ”์†Œ๋“œ
let lastName = 'Yeri Kim';
let upperLastName = lastName.toUpperCase();
let lowerLastName = lastName.toLowerCase();

console.log(lastName); // Yeri Kim
console.log(upperLastName); // YERI KIM
console.log(lowerLastName); // yeri kim

 

โ—‰ ๋ฌธ์ž ๊ธธ์ด 

  • length ์†์„ฑ
if (phoneNumber.length !== 10 &&  phoneNumber.length !== 11) {
  alert("ํฐ ๋ฒˆํ˜ธ ์ œ๋Œ€๋กœ ์ž…๋ ฅํ•˜์…จ๋‚˜์š”?");
}
//๋‹ค์Œ ์˜ˆ์ œ๋Š” ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ(phoneNumber)๊ฐ€ 10์ž๋ฆฌ๋„ ์•„๋‹ˆ๊ณ , 11์ž๋ฆฌ๋„ ์•„๋‹ˆ๋ฉด alert ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
let name = prompt("์„ฑํ•จ์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”");

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

โ– ์ฐธ๊ณ .

0์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ˆซ์ž ํ‘œํ˜„์‹์€ ์—†์Šต๋‹ˆ๋‹ค. (์•„์ด์Šคํฌ๋ฆผ 023๊ฐœ ์ฃผ์„ธ์š”! ๋ผ๊ณ  ํ•˜์ง€๋Š” ์•Š์ฃ .)

let phoneNumber = "01012349876";

console.log(phoneNumber);
console.log(phoneNumber.length);

phoneNumber ๋Š” ์›๋ž˜ Numberํ˜•์ด๋ฉฐ, ์•ž์˜ 0์ด ์—†์ด ๋’ท ์ˆซ์ž๋งŒ ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ, Numberํ˜•์—๋Š” length ๋ผ๋Š” ์†์„ฑ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์—, ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ๋ฅผ ์˜จ์ „ํžˆ ํ‘œ์‹œํ•˜๊ณ  length ์†์„ฑ์„ ์ด์šฉํ•˜๋ ค๋ฉด ์œ„์™€ ๊ฐ™์ด Stringํ˜•์œผ๋กœ ์ €์žฅํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

 

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

  • 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);

์œ„๋Š” "ํ”„๋กœ๋ž˜๋ฐ" ์ด๋ผ๋Š” ์˜คํƒ€๋ฅผ "ํ”„๋กœ๊ทธ๋ž˜๋ฐ" ์ด๋ผ๊ณ  ๋ฐ”๊พธ์–ด ์ฃผ๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

์ฝ”๋“œ๋ฅผ ํ•œ ์ค„ ํ•œ ์ค„ ์„ค๋ช…ํ•˜์ž๋ฉด

 

1. info ๋ฌธ๊ตฌ์—์„œ "ํ”„๋กœ๋ž˜๋ฐ"์ด ์‹œ์ž‘๋˜๋Š” index ๋Š” 12์ž…๋‹ˆ๋‹ค.

 

2. if (firstChar !== -1)

  • firstChar ์ด -1์ด ์•„๋‹ˆ๋ฉด
  • ์ฆ‰, "ํ”„๋กœ๋ž˜๋ฐ"์ด๋ผ๋Š” ๋ฌธ๊ตฌ๊ฐ€ ์—†์ง€ ์•Š๋‹ค๋ฉด
  • ์ฆ‰, "ํ”„๋กœ๋ž˜๋ฐ"์ด๋ผ๋Š” ๋ฌธ๊ตฌ๊ฐ€ ์žˆ๋‹ค๋ฉด
  • "ํ”„๋กœ๋ž˜๋ฐ" ๋ฌธ๊ตฌ๋Š” 12๋ฒˆ์งธ์—์„œ ์‹œ์ž‘ํ•˜๋ฏ€๋กœ firstChar ๋Š” 12 ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์กฐ๊ฑด๋ฌธ์€ true.
  • "ํ”„๋กœ๋ž˜๋ฐ"์ด๋ผ๋Š” ์˜คํƒ€๊ฐ€ ํฌํ•จ๋˜์–ด์žˆ์œผ๋ฉด if ๋ฌธ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

3. info.slice(0, firstChar)

  • slice ๋ฉ”์†Œ๋“œ๋Š” ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ, ํ…์ŠคํŠธ๋ฅผ ์ž˜๋ผ์ฃผ๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • ๊ทธ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
slice(์ž˜๋ฆด ์‹œ์ž‘์œ„์น˜, ์ž˜๋ฆด ๋์œ„์น˜)
  • ์ž˜๋ฆด ์‹œ์ž‘์œ„์น˜๋Š” 0์ž…๋‹ˆ๋‹ค. ์ž˜๋ฆด ๋์œ„์น˜๋Š” firstChar ๋กœ 12 ์ž…๋‹ˆ๋‹ค.
  • ๊ทธ๋ž˜์„œ slice ๋ฉ”์†Œ๋“œ๋Š” info ๋ฌธ๊ตฌ์˜ 0๋ถ€ํ„ฐ 11๋ฒˆ์งธ ๊นŒ์ง€ ์ž˜๋ผ์„œ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์ž˜๋ฆด ๋์œ„์น˜๊ฐ€ ์กฐ๊ธˆ ํ—ท๊ฐˆ๋ฆฌ๋Š”๋ฐ, ์ž˜๋ฆด ๋์œ„์น˜์˜ ๋ฌธ๊ตฌ๋Š” ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ, 12๋ฒˆ์งธ์˜ ๋ฌธ์ž๋Š” ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ๊ทธ ์ง์ „์—์„œ ๋Š์–ด์ค๋‹ˆ๋‹ค.
  • ์ง€๊ธˆ slice ๋ฉ”์†Œ๋“œ๊ฐ€ ์กฐ๊ธˆ ์–ด๋ ต๊ฒ ์ง€๋งŒ ์ผ๋‹จ slice ๋ผ๋Š” ๋ฉ”์†Œ๋“œ ์žˆ๋‹ค๋Š” ๊ฒƒ๋งŒ ๊ธฐ์–ตํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋„ ์ข‹์Šต๋‹ˆ๋‹ค.
console.log(info.slice(0, firstChar));

 

4. info.slice(firstChar+4, info.length);

  • ์ž˜๋ฆด ์‹œ์ž‘์œ„์น˜๋Š” 16 ์ž…๋‹ˆ๋‹ค. (firstChar + 4 = 12 + 4 = 16)
  • ์ž˜๋ฆด ๋ ์œ„์น˜๋Š” 22 ์ž…๋‹ˆ๋‹ค. (info.length = 22)
  • info ์˜ 16๋ฒˆ์งธ ๋ฌธ์ž์ธ "์–ธ" ๋ถ€ํ„ฐ 22๋ฒˆ์งธ ๋ฌธ์ž ์ด์ „๊นŒ์ง€ ์ž๋ฅด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • 22๋ฒˆ์งธ๋Š” ๋ฌธ์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ๊ทธ ์ง์ „์— ๋Š์œผ๋‹ˆ "."๊นŒ์ง€ ํฌํ•จํ•˜๋Š” ๋ฌธ์ž์—ด๋กœ ์ž˜๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
console.log(firstChar+4, info.length);

Assignment

sliceCityFromAddress ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ด ์ฃผ์„ธ์š”.

  • sliceCityFromAddress ํ•จ์ˆ˜๋Š” address ๋ฅผ ์ธ์ž๋กœ ๋ฐ›์Šต๋‹ˆ๋‹ค.
  • address ๋Š” ์ฃผ์†Œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” string ์ž…๋‹ˆ๋‹ค.
  • ์ฃผ์–ด์ง„ ์ฃผ์†Œ๊ฐ€ ์–ด๋А ๋„์‹œ ์ธ์ง€๋ฅผ ์ฐพ์•„ ํ•ด๋‹น ์ฃผ์†Œ์—์„œ ๋„์‹œ ๋ถ€๋ถ„๋งŒ ์‚ญ์ œํ•œ ์ƒˆ๋กœ์šด ์ฃผ์†Œ๋ฅผ ๋ฆฌํ„ดํ•ด ์ฃผ์„ธ์š”.
  • ๋„์‹œ๋Š” ๋ฌด์กฐ๊ฑด "์‹œ" ๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, "์„œ์šธ์‹œ".
  • "๋„" ์™€ "์‹œ" ๋Š” ์ฃผ์†Œ์— ํ•œ๋ฒˆ ๋ฐ–์— ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฃผ์†Œ๊ฐ€ ์ฃผ์–ด์กŒ๋‹ค๋ฉด;
"๊ฒฝ๊ธฐ๋„ ์„ฑ๋‚จ์‹œ ๋ถ„๋‹น๊ตฌ ์ค‘์•™๊ณต์›๋กœ 53"

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ’์ด ๋ฆฌํ„ด๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

"๊ฒฝ๊ธฐ๋„ ๋ถ„๋‹น๊ตฌ ์ค‘์•™๊ณต์›๋กœ 53"
// Assignment - ๋‹ค์Œ ํ•จ์ˆ˜ ์•ˆ์— ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜์„ธ์š”
function sliceCityFromAddress(address) {

let someSi = address.indexOf('์‹œ'); 
let someDo = address.indexOf('๋„'); 
if (someDo !== -1){
    let newAddress = address.slice(0,someDo+1)+address.slice(someSi+1)
    return newAddress;
  }
   else {
    let newAddress = address.slice(someSi+2)
    return newAddress;
  }
}

let exAddress = sliceCityFromAddress("๊ฒฝ๊ธฐ๋„ ์„ฑ๋‚จ์‹œ ๋ถ„๋‹น๊ตฌ ์ค‘์•™๊ณต์›๋กœ 53");
console.log(exAddress);

โ20. String <-> Number ๋ณ€ํ™˜

console.log(2019+"2000");
console.log(2019-"2000");

์ปดํ“จํ„ฐ๊ฐ€ + ์˜ ์–‘์ชฝ์„ ๋ณด๊ณ , ํ•˜๋‚˜๋ผ๋„ String์ด ์žˆ์œผ๋ฉด ๋ฌธ์ž์—ด๋กœ์„œ ํ•ฉ์ณ์ค๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ๋ผ๋ฉด, String์˜ ๋งˆ์ด๋„ˆ์Šค๋Š” ์กด์žฌ ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์–‘์ชฝ์˜ ๊ฐ’์„ ๋ชจ๋‘ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•ด์„œ ๊ณ„์‚ฐํ•ด ์ค๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์œ„์˜ ์ฝ”๋“œ๊ฐ€ ์ž˜ ๋™์ž‘ ๋˜๊ธด ํ•˜์ง€๋งŒ, ํ•จ๊ป˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋Š” ๋™๋ฃŒ๊ฐ€ ์ถฉ๋ถ„ํžˆ ์˜คํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

๊ณ„์‚ฐ์ด ์ž˜ ๋˜๋”๋ผ๋„ ํ…์ŠคํŠธ๋กœ ํ‘œํ˜„๋œ ์ˆซ์ž๋Š”, ๊ผญ ์ˆซ์ž๋กœ ๋ฐ”๊ฟ”์„œ ๊ณ„์‚ฐ์„ ํ•ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์ด Number ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ Stringํ˜•์—์„œ Numberํ˜•์œผ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


Assignment

nationalPensionRemainingYearCount ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ด์ฃผ์„ธ์š”.

  • ์šฐ๋ฆฌ๋‚˜๋ผ๋Š” ๊ตญ๋ฏผ์—ฐ๊ธˆ์„ ๋งŒ 65์„ธ ๋ถ€ํ„ฐ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • nationalPensionRemainingYearCount ๋Š” age_string ์ด๋ผ๋Š” input์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.
  • age_string ์€ ๋‚˜์ด ๊ฐ’์ธ๋ฐ stringํ˜• ๊ฐ’์œผ๋กœ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฃผ์–ด์ง„ ๋‚˜์ด๋ถ€ํ„ฐ ๋ช‡๋…„์ด ์ง€๋‚˜์•ผ ๊ตญ๋ฏผ์—ฐ๊ธˆ์„ ๋ฐ›์„์ˆ˜ ์žˆ๋Š”์ง€ ๋ฆฌํ„ด ํ•ด์ฃผ์„ธ์š”.
  • ๋ฆฌํ„ด ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
"์•ž์œผ๋กœ 20๋…„ ๋‚จ์œผ์…จ์Šต๋‹ˆ๋‹ค"
  • ์˜ˆ๋ฅผ ๋“ค์–ด, age_string ๊ฐ’์ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๋ฉด:
"35"

๋ฆฌํ„ด ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

"์•ž์œผ๋กœ 30๋…„ ๋‚จ์œผ์…จ์Šต๋‹ˆ๋‹ค"
// Assignment - ๋‹ค์Œ ํ•จ์ˆ˜ ์•ˆ์— ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜์„ธ์š”
function nationalPensionRemainingYearCount(age_string) {
  // Your code here
  let yourAge = parseInt/*Number or parseFloat*/(age_string);
  let year = 65 - yourAge;
  let result = "์•ž์œผ๋กœ " + year + "๋…„ ๋‚จ์œผ์…จ์Šต๋‹ˆ๋‹ค";
  return result;
}
console.log(nationalPensionRemainingYearCount(35))