๐Ÿ“… TIL #9

๋ณ€์ˆ˜์™€ ํƒ€์ž…

1. ๋ณ€์ˆ˜์™€ ํƒ€์ž…

๋ณ€์ˆ˜์™€ ํƒ€์ž… ๊ธฐ์ดˆ :

1. ๋ณ€์ˆ˜(variable)

๋ณ€์ˆ˜๋ž€, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์„ธ๊ณ„์—์„œ๋Š” ์ด๋ฆ„(Label)์ด ๋ถ™์€ ๊ฐ’์œผ๋กœ ์ •์˜๋œ๋‹ค.

๋ณ€์ˆ˜์— ์ด๋ฆ„์„ ์ง€์–ด์ฃผ๊ณ (์„ ์–ธ) ๊ฐ’์„ ๋„ฃ์–ด์ค€๋‹ค(ํ• ๋‹น).

let number = 1;      // ๊ฐ’์ด ์ˆซ์ž๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ๊ณ 
let name = 'useong'  // ๋ฌธ์ž์—ด์ด ๋  ์ˆ˜๋„ ์žˆ๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” โ€˜=โ€™ ์—ฐ์‚ฐ์ž์˜ ๋œป์€ ์ ˆ๋Œ€๋กœ ๊ฐ™๋‹ค๋Š” ๋œป์ด ์•„๋‹ˆ๋‹ค
๋ฉ”๋ชจ๋ฆฌ๋ผ๋Š” ๋ณด๊ด€ํ•จ์— ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค๊ณ  ์ดํ•ดํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.
(ํ• ๋‹น์˜ ๊ฐœ๋…)

๋ณ€์ˆ˜๋Š” ๋™์ผํ•œ ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋Œ€์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์šฉํ–ˆ๋˜ let์€ ๋˜ ์‚ฌ์šฉํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค.

let num = 1;     
num = num + 2;   // let num = num + 2 => ์—๋Ÿฌ
num = num + 3;
num = num + 4;

console.log(num) // 10;

2. ํƒ€์ž…(type)

ํƒ€์ž…์„ ํ™•์ธํ•  ๋•Œ๋Š” type of ์—ฐ์‚ฐ์ž๋ฅผ ์จ์„œ ๋ฌด์Šจ ํƒ€์ž…์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์›์‹œ์ž๋ฃŒํ˜• (number, string, boolean, undefined, function) ๋„ ํƒ€์ž…์ด๋‹ค.

console.log(typeof 1);
// expected output: "number"

console.log(typeof 'useong');
// expected output: "string"

console.log(typeof true);
// expected output: "boolean"

console.log(typeof undeclaredVariable);
// expected output: "undefined"

console.log(typeof function(){});
// expected output: "function"

console.log(typeof {a : 1});
// expected output: "object"

console.log(typeof [1, 2, 3]);
// expected output: "object"




2. ํ•จ์ˆ˜

ํ•จ์ˆ˜ ๊ธฐ์ดˆ :

3. ํ•จ์ˆ˜(function)

  • ํ•จ์ˆ˜๋Š” โ€œ์ž‘์€ ๊ธฐ๋Šฅ์˜ ๋‹จ์œ„โ€ ๋ผ๊ณ  ํ‘œํ˜„ํ•ด๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.
  • ํ•จ์ˆ˜ ์„ ์–ธ์‹๊ณผ ํ•จ์ˆ˜ ํ‘œํ˜„์‹์ด ์žˆ๋‹ค.
  • return (ํ•จ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ) ๊ณผ console.log(ํ˜„์žฌ ์›ํ•˜๋Š” ๊ฐ’์„ ํ™•์ธ) ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค.
  • ๋งค๊ฐœ๋ณ€์ˆ˜(parameter) ์™€ ์ „๋‹ฌ์ธ์ž(argument)๊ฐ€ ์žˆ๋‹ค.
let word = 'welcome to';  // word = ์ „๋‹ฌ์ธ์ž(argument)

function gitBlog(word) {
  if (typeof word !== 'string') {
    return 'wrong type';
  }
  else {
    return word + ' useonglee!';
  }
}
console.log(gitBlog(word)) // 'welcome to useonglee!'

ํ•จ์ˆ˜ ์„ ์–ธ์‹๊ณผ ํ‘œํ˜„์‹์€ ๊ฒ‰๋ณด๊ธฐ์—๋Š” ๋น„์Šทํ•ด๋ณด์ด์ง€๋งŒ ์•ฝ๊ฐ„์˜ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

//ํ•จ์ˆ˜ ์„ ์–ธ์‹
function myFunction (input) {  // input : ๋งค๊ฐœ๋ณ€์ˆ˜(parameter)
  console.log(input);
}

//ํ•จ์ˆ˜ ํ‘œํ˜„์‹
let myFunction = function (input) {
  console.log(input);
}

์ €๋ฒˆ์— ์˜ฌ๋ ธ๋˜ ํ˜ธ์ด์ŠคํŒ…๊ณผ๋„ ๊ด€๋ จ์ด ์žˆ๋‹ค.

ํ•จ์ˆ˜ ์„ ์–ธ์‹์€ ํ˜ธ์ด์ŠคํŒ…์— ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค. ์ฆ‰, ํ•จ์ˆ˜ ์„ ์–ธ์‹์€ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•œ ์œ„์น˜์™€ ๊ด€๊ณ„์—†์ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ•ด์„ํ•  ๋•Œ ๋งจ์œ„๋กœ ๋Œ์–ด ์˜ฌ๋ ค์ง„๋‹ค.

์ด์™€ ๋ฐ˜๋Œ€๋กœ, ํ‘œํ˜„์‹์€ ํ˜ธ์ถœ ์ˆœ์„œ์— ๋”ฐ๋ผ์„œ ์ •์ƒ์ ์œผ๋กœ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋‚œ ํ•จ์ˆ˜ ํ‘œํ˜„์‹์„ ๋” ์„ ํ˜ธํ•œ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ’€ ๋•Œ, ํด๋กœ์ ธ๋กœ๋„ ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๊ณ , ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋กœ๋„ ์‚ฌ์šฉํ•  ์ผ์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.




3. join๊ณผ undefined์˜ ๊ด€๊ณ„

join๊ณผ undefined์˜ ๊ด€๊ณ„ :

์ด ๋ถ€๋ถ„์€ ๋‚ด๊ฐ€ helpdesk์— ์˜ฌ๋ ธ๋˜ ์งˆ๋ฌธ์ด๋ผ์„œ ์ด ๋‚ด์šฉ์œผ๋กœ๋„ ๋ธ”๋กœ๊น…์„ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ 13๋ฒˆ๋ฌธ์ œ์™€ ๊ด€๋ จํ•ด์„œ ์งˆ๋ฌธ์„ ํ–ˆ์—ˆ๋‹ค. ํ•ด๊ฒฐํ•œ ๋ฌธ์ œ์˜€์ง€๋งŒ,

๋ฐฐ์—ด์— ๋ฌธ์ž์—ด์„ pushํ•˜๊ณ  join์„ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ๋Š” โ€˜YouCanDoItโ€™ ์œผ๋กœ ๋‚˜์™”์ง€๋งŒ

๋ฌธ์ž์—ด์„ ๋”ํ•ด์คฌ์„ ๋•Œ๋Š” โ€˜YouCanDoItundefinedundefinedโ€™ ์œผ๋กœ ๋ฐ˜ํ™˜์ด ๋˜์—ˆ๋‹ค.

์ด ๋ถ€๋ถ„์ด ๊ถ๊ธˆํ•ด์„œ ์งˆ๋ฌธ์„ ํ–ˆ์—ˆ๋‹ค.

//๋ฐฐ์—ด์—๋Š” undefined๋ฅผ ํ‘ธ์‰ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
let arr = [];
arr.push(undefined);
console.log(arr) // [ undefined ]

arr.push(1, 2, 3)
console.log(arr) // [undefined, 1, 2, 3]
console.log(arr.join('')) // "123"

๊ทธ๋ ‡๋‹ค๋ฉด undefined๊ฐ€ ์žˆ๋Š” ๋ฐฐ์—ด์— join์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ์ง€ ํ•œ๋ฒˆ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์œ„์™€ ๊ฐ™์ด ๋ฐฐ์—ด์— undefined๋ฅผ pushํ•˜๋Š”๊ฒƒ์€ ๋˜์ง€๋งŒ, ๋ฌธ์ž์—ด๋กœ ๋”ํ•ด์ค„๋•Œ

"abc" + undefined === "abcundefined"

์™€ ๊ฐ™์ด ๋˜๋Š” ํŠน์„ฑ์œผ๋กœ โ€˜YouCanDoItundefinedundefinedโ€™ ์™€ ๊ฐ™์€ ๊ฐ’์ด ์ถœ๋ ฅ์ด ๋˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค. undefined๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ์ด์–ด์ฃผ๋Š” ๊ฒƒ์€ join์ด ํ•ด์ฃผ๋Š” ์—ญํ• ์ž…๋‹ˆ๋‹ค.

์‚ฌ์‹ค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ 13๋ฒˆ์„ ํ’€์—ˆ๊ธฐ๋•Œ๋ฌธ์— ๊ทธ๋ƒฅ ๋„˜์–ด๊ฐˆ ์ˆ˜ ๋„ ์žˆ์—ˆ๋˜ ๋ฌธ์ œ์˜€์ง€๋งŒ,

๋‚˜์˜ ๋‹จ์ˆœํ•œ ํ˜ธ๊ธฐ์‹ฌ์ด ์ด ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ–ˆ๋‹ค. ์ด ํ˜ธ๊ธฐ์‹ฌ์ด ์—†์—ˆ๋”๋ผ๋ฉด ์ด ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ๋Š” ์ „ํ˜€ ์•Œ๊ณ  ๋„˜์–ด๊ฐ€์ง€ ๋ชปํ–ˆ์„ ๊ฒƒ์ด๋‹ค.

์ด๋Ÿฐ์‹์œผ๋กœ helpdesk๋ฅผ ํ™•์‹คํžˆ ์ž˜ ์ด์šฉํ•ด์•ผ๋งŒ ํ•™์Šต์— ๋” ํšจ๊ณผ์ ์ธ ๊ฒƒ ๊ฐ™๋‹ค.

๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ ์งˆ๋ฌธ์„ ํ•˜๋Š” ์ž์„ธ๋„ ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜๋‹ค.

๐Ÿ‘Š ๋‚ด์ผ์˜ TIW(today I Will)

์กฐ๊ฑด๋ฌธ๊ณผ ๋ฌธ์ž์—ด