๋ณ€์ˆ˜-02

์ด์„œ๋ฆผยท2024๋…„ 7์›” 30์ผ

JavaScript

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

2.1. ๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ ๋ฐฉ์‹

  • ๋ณ€์ˆ˜์˜ ์ด๋ฆ„๊ณผ ํ• ๋‹น๋œ ๊ฐ’์ด ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ๊ฐ ์ €์žฅ

๐Ÿ’ก ๋งค๋‹ˆ์ง€๋“œ ์–ธ์–ด

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

์ด๋ฏธ์ง€์—์„œ ์‚ฌ์šฉ๋œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋‚˜ ์ฃผ์†Œ ํ‘œ๊ธฐ๋ฒ•(@)์€ ์ดํ•ด๋ฅผ ๋•๊ธฐ ์œ„ํ•œ ๋ฐฉ์‹์œผ๋กœ ์‹ค์ œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์™€ ํ‘œ๊ธฐ๋ฒ•์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๐Ÿ’ก ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ

๋งค๋‹ˆ์ง€๋“œ ์–ธ์–ด์ธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŠน์„ฑ ์ƒ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๋ฅผ ๋‚ด์žฅํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ฒ€์‚ฌํ•˜์—ฌ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

2.2. ์Šค์ฝ”ํ”„ (scope)

  • ๋ณ€์ˆ˜์˜ ์ ‘๊ทผ์„ฑ๊ณผ ์ƒ์กด ๊ธฐ๊ฐ„์„ ์ œ์–ดํ•˜๋Š” โ€˜์ƒ์กด ๋ฒ”์œ„โ€™๋ฅผ ์˜๋ฏธ
  • ์„ ์–ธ ํ‚ค์›Œ๋“œ๋ณ„๋กœ ๊ฐ๊ฐ ๋‹ค๋ฅธ ์Šค์ฝ”ํ”„๋ฅผ ๊ฐ€์ง.
    1. ์ „์—ญ ์Šค์ฝ”ํ”„: ์–ด๋””์„œ๋“  ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ณ€์ˆ˜ ์˜์—ญ

    2. ํ•จ์ˆ˜ ์Šค์ฝ”ํ”„: ํ•จ์ˆ˜ ๋‚ด์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ณ€์ˆ˜ ์˜์—ญ. var.

      var a = 10;
      let b = 20;
      const c = 30;
      

      function funcScope() {
      console.log("----- Function Scope ------");
      console.log("์ „์—ญ๋ณ€์ˆ˜: ", a, b, c);
      var fA = 40;
      let fB = 50;
      const fC = 60;
      console.log("ํ•จ์ˆ˜ ๋‚ด๋ถ€: ", fA, fB, fC);
      }
      funcScope();
      // console.log("ํ•จ์ˆ˜ ๋ณ€์ˆ˜", fA, fB, fC);

    3. ๋ธ”๋ก ์Šค์ฝ”ํ”„: ์ค‘๊ด„ํ˜ธ๋กœ ๊ฐ์‹ธ์ง„ ์ฝ”๋“œ ๋ธ”๋ก ๋‹จ์œ„๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ณ€์ˆ˜ ์˜์—ญ. let๊ณผ const.

      {
        console.log("----- Block Scope ------");
        console.log("์ „์—ญ๋ณ€์ˆ˜: ", a, b, c);
      

      var bA = 70; // ํ•จ์ˆ˜ ์Šค์ฝ”ํ”„์ด๊ธฐ ๋•Œ๋ฌธ์— ์ „์—ญ ๋ณ€์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
      let bB = 80;
      const bC = 90;
      console.log("๋ธ”๋ก ๋‚ด๋ถ€: ", bA, bB, bC);
      }
      console.log("๋ธ”๋ก ๋ณ€์ˆ˜: ", bA, bB, bC);

profile
๊พธ์ค€ํ•œ ์—ด์ •์œผ๋กœ ๋‚˜์•„๊ฐ€๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž

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