πŸ”₯ [UIUX] 0102 JAVASCRIPT Coding, μ½”λ”© μ΄ˆκΈ‰ 2

You_Jin.Β·2025λ…„ 1μ›” 2일
1
post-thumbnail

✏️ 2025. 1μ›” 2일 / javascript μ΄ˆκΈ‰ 2

πŸ‘» λ³€μˆ˜μ— μ €μž₯ν•  수 μžˆλŠ” μžλ£Œν˜•
λ³€μˆ˜μ— μ €μž₯ν•  수 μžˆλŠ” μžλ£Œν˜•(Data type)μœΌλ‘œλŠ”
λ¬Έμžν˜•(string), μˆ«μžν˜•(number), λ…Όλ¦¬ν˜•(boolean), λΉˆλ°μ΄ν„°(null,undefined)κ°€ μžˆμŠ΅λ‹ˆλ‹€.
μ•žμœΌλ‘œ '--ν˜• 데이터' 라고 λΆ€λ₯΄κ² μŠ΅λ‹ˆλ‹€.
πŸ‘€ 1. λ¬Έμžν˜• 데이터 (String)
λ¬Έμžν˜• λ°μ΄ν„°λŠ” λ¬Έμžλ‚˜ 숫자λ₯Ό 큰 λ”°μ˜΄ν‘œ("")λ‚˜ μž‘μ€ λ”°μ˜΄ν‘œ('')둜 감싸고 μžˆλŠ” 데이터λ₯Ό λ§ν•©λ‹ˆλ‹€.
html νƒœκ·Έλ₯Ό λ¬Έμžν˜• 데이터에 ν¬ν•¨ν•˜μ—¬ 좜λ ₯ν•˜λ©΄ νƒœκ·Έλ‘œ μΈμ‹ν•©λ‹ˆλ‹€.

     [κΈ°λ³Έν˜•]
     var λ³€μˆ˜ = 'μ‚¬μš©ν•  μˆ«μžλ‚˜ 문자 λ˜λŠ” νƒœκ·Έ'

πŸ‘€ 2. μˆ«μžν˜• 데이터 (Number)
μˆ«μžν˜• λ°μ΄ν„°λŠ” 단어 의미 κ·ΈλŒ€λ‘œ 숫자λ₯Ό λ§ν•©λ‹ˆλ‹€.
λ§Œμ•½ "100"처럼 λ”°μ˜΄ν‘œλ‘œ μˆ«μžκ°€ κ°μ‹Έμ Έμžˆλ‹€λ©΄ "100"은 μˆ«μžκ°€ μ•„λ‹Œ λ¬Έμžμž…λ‹ˆλ‹€.
λ¬Έμžν˜• 숫자λ₯Ό 숫자둜 μ·¨κΈ‰ν•˜κ³  μ‹Άλ‹€λ©΄,
Number("100")을 μ΄μš©ν•˜λ©΄ λ¬Έμžν˜• 데이터λ₯Ό 숫자둜 λ°”κΏ€ 수 μžˆμŠ΅λ‹ˆλ‹€.

     [κΈ°λ³Έν˜•]
     var λ³€μˆ˜λͺ… = 숫자;
     var λ³€μˆ˜λͺ… = Number('λ¬Έμžν˜• 숫자'); -> 문자λ₯Ό 숫자둜 μ·¨κΈ‰

πŸ‘€ 2. λ…Όλ¦¬ν˜• 데이터 (Boolean)
λ…Όλ¦¬ν˜• λ°μ΄ν„°λŠ” true(μ°Έ)λ˜λŠ” false(κ±°μ§“)으둜 값을 좜λ ₯ν•΄μ£ΌλŠ” 데이터 μž…λ‹ˆλ‹€.
μ΄λ•Œ, 이 λ°μ΄ν„°λŠ” 주둜 2개의 데이터λ₯Ό 비ꡐ할 λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
예λ₯Ό λ“€μ–΄ "100보닀 10이 크닀"λŠ” 잘λͺ»λœ λΉ„κ΅μ΄λ―€λ‘œ false 값을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
Boolean()λ§€μ„œλ“œμ— 데이터λ₯Ό μž…λ ₯ν•˜λ©΄ 값은 무쑰건 λ…Όλ¦¬ν˜• 데이터인 true/falseκ°€ λ°˜ν™˜λ©λ‹ˆλ‹€.
μ΄λ•Œ ()μ•ˆμ—λŠ” 0,null,undefined, ""(빈문자), falseλ₯Ό μ œμ™Έν•œ λͺ¨λ“  데이터에 λŒ€ν•΄ true 값을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
예λ₯Ό λ“€μ–΄ Boolean("κΉ€λ•‘λ•‘")이라고 μž…λ ₯ν•˜λ©΄ trueκ°€ λ°˜ν™˜λ©λ‹ˆλ‹€.

     [κΈ°λ³Έν˜•]
     var λ³€μˆ˜ = true λ˜λŠ” false;
     var λ³€μˆ˜ = Boolean(데이터);

πŸ‘€ null & undefined 데이터
undefined λ°μ΄ν„°λŠ” λ³€μˆ˜μ— 값이 ν• λ‹Ήλ˜κΈ° μ΄μ „μ˜ 기본값을 λ§ν•©λ‹ˆλ‹€.
즉, '데이터가 ν• λ‹Ή 된 적이 μ—†λ‹€'λ₯Ό λœ»ν•˜λŠ” 데이터 μž…λ‹ˆλ‹€.
var num; 처럼 λ³€μˆ˜λͺ…λ§Œ μ„ μ–Έν•œ μƒνƒœμ—μ„œλŠ” undefined 데이터가 λ³€μˆ˜μ— μ €μž₯λ©λ‹ˆλ‹€.
null λ°μ΄ν„°λŠ” λ³€μˆ˜μ— μ €μž₯된 데이터λ₯Ό λΉ„μšΈ λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

     [κΈ°λ³Έν˜•]
     var λ³€μˆ˜λͺ…; //undefined
     var λ³€μˆ˜λͺ… = null; //λ³€μˆ˜ μ•ˆμ— 있던 값을 μ΄ˆκΈ°ν™” ν•˜κ² λ‹€.

πŸ‘€ typeof
μ§€μ •ν•œ 데이터 λ˜λŠ” λ³€μˆ˜μ— μ €μž₯된 μžλ£Œν˜•μ„ μ•Œμ•„λ‚Όλ•Œ μ‚¬μš©ν•˜λŠ” ν‚€μ›Œλ“œ μž…λ‹ˆλ‹€.

     [κΈ°λ³Έν˜•]
     typeof λ³€μˆ˜λͺ… λ˜λŠ” 데이터;

πŸ‘» λ³€μˆ˜ μ„ μ–Έ μ‹œ μ£Όμ˜μ‚¬ν•­(μ½”λ”© μ»¨λ²€μ…˜)
πŸ‘€ 1. λ³€μˆ˜λͺ…μ˜ 첫 κΈ€μžλ‘œλŠ” _,$, 영문자만 올 수 μžˆμŠ΅λ‹ˆλ‹€.

    ex ) var 1num; (x)
         var $num; (o)

πŸ‘€ 2. λ³€μˆ˜λͺ…μ˜ 첫 κΈ€μž λ‹€μŒμœΌλ‘œλŠ” 영문자, 숫자, _와 &κ°€ 올 수 μžˆμŠ΅λ‹ˆλ‹€.

     ex) var 100num(x)
         var num100(o)

πŸ‘€ 3. λ³€μˆ˜λͺ…μœΌλ‘œλŠ” μ˜ˆμ•½μ–΄(μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ μ½”λ“œλ‘œ 이미 μ‚¬μš©μ€‘μΈ 이름)λ₯Ό μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

     ex) var typeof;(x)
         var number;(x)
         var num;(o)

πŸ‘€ 4. λ³€μˆ˜λͺ…을 μ§€μ„λ•Œμ—λŠ” λ˜λ„λ‘ μ˜λ―Έμ— 맞게 μ§€μ–΄μ•Ό ν•©λ‹ˆλ‹€. 직관적이고 λ‹¨μˆœν• μˆ˜λ‘ μ’‹μŠ΅λ‹ˆλ‹€.

     ex) var num = "hello"; (x)
         var num = 10; (o)

πŸ‘€ 5. λ³€μˆ˜λͺ…을 μ‚¬μš©ν• λ•Œμ—λŠ” λ°˜λ“œμ‹œ λŒ€/μ†Œλ¬Έμžλ₯Ό ꡬ별해야 ν•©λ‹ˆλ‹€.

     ex) var userName = "κΉ€λ•‘λ•‘";
         vae username = "λ°•λ•‘λ•‘"; (x)
<script>
      /* λ¬Έμžν˜• 데이터 */
      var str1 = "javascript"; //λ³€μˆ˜ str1을 λ§Œλ“€μ–΄μ„œ 'javascript'λΌλŠ” κ°’μœΌλ‘œ μ΄ˆκΈ°ν™”
      var num1 = 100; //λ³€μˆ˜num1에 λ¬Έμžν˜• 숫자인 "100"μ΄λΌλŠ” κ°’μœΌλ‘œ μ΄ˆκΈ°ν™”
      var tag = "<h1>제λͺ©νƒœκ·Έ</h1>";
      document.write(str1, "<br/>"); //λ³€μˆ˜ str1에 λ“€μ–΄μžˆλŠ” 값을 화면에 좜λ ₯ν•˜κΈ°
      document.write(num1, "<br/>"); //λ³€μˆ˜ num1에 λ“€μ–΄μžˆλŠ” 값을 화면에 좜λ ₯ν•˜κΈ°
      document.write(tag, "<br/>"); //λ³€μˆ˜ tag에 λ“€μ–΄μžˆλŠ” 값을 화면에 좜λ ₯ν•˜κΈ°
      /* μˆ«μžν˜• 데이터 */
      var num2 = 100;
      var str2 = Number("100"); //문자인 숫자 100을 숫자둜 λ°”κΎΌ ν›„, λ³€μˆ˜ str2에 500μ΄λΌλŠ” 값을 λ„£μ–΄(=ν• λ‹Ήν•˜μ—¬) μ΄ˆκΈ°ν™”
      document.write(num2, "<br/>");
      document.write(str2 + 500, "<br/>"); //μˆ«μžν˜• λ°μ΄ν„°λŠ” 연산이 κ°€λŠ₯
      /* λ…Όλ¦¬ν˜• 데이터 */
      var a = true; //λ³€μˆ˜ a에 true 값을 ν• λ‹Ή, trueλŠ” 데이터 이닀.
      var b = false; //λ³€μˆ˜ b에 false 값을 ν• λ‹Ή, falseλŠ” 데이터 이닀.
      var c = 10 > 5; //10은 5보닀 크닀. 숫자끼리 λΉ„κ΅ν•œλ‹€.
      var d = Boolean(0); //Booleanλ©”μ„œλ“œμ— 0을 ν• λ‹Ή
      var e = Boolean(1); //Booleanλ©”μ„œλ“œμ— 1을 ν• λ‹Ή
      document.write(a, "<br/>"); //true
      document.write(b, "<br/>"); //false
      document.write(c, "<br/>"); //true
      document.write(d, "<br/>"); //false, Booleanλ©”μ„œλ“œμ— 0(μ—†λŠ” 숫자)을 λ„£μ—ˆκΈ° λ•Œλ¬Έμ— falseκ°€ λ‚˜μ˜¨λ‹€.
      document.write(e, "<br/>"); //true
      /* undefined & null 데이터 */
      var data1; //μ΄ˆκΈ°κ°’μ΄ ν• λ‹Ήλ˜μ§€μ•ŠμŒ = undefined
      var data2 = 100; //100μ΄λΌλŠ” μ΄ˆκΈ°κ°’μ„ ν• λ‹Ήν•œ μƒνƒœ
      data2 = null; //κΈ°μ‘΄ 데이터λ₯Ό null둜 λΉ„μš΄ μƒνƒœ
      document.write(data1, "<br/>"); //undefined
      document.write(data2, "<br/>"); //null
      //typeof
      var num3 = 100;
      var num4 = "100";
      var bool = true;
      document.write(typeof num3, "<br/>");
      document.write(typeof num4, "<br/>");
      document.write(typeof bool, "<br/>");
    </script>

πŸ‘» μ—°μ‚°μž
μ—°μ‚°μžλž€ 무언가 μ—°μ‚°ν•˜μ—¬ 값을 λ‚Ό 수 μžˆλŠ” 계산식을 λ§ν•©λ‹ˆλ‹€.
μ΄ˆλ“±ν•™κ΅λ•Œ 배운 λ”ν•˜κΈ°, λΉΌκΈ°, κ³±ν•˜κΈ°, λ‚˜λˆ„κΈ°, λ‚˜λ¨Έμ§€μ™€ 같은 κ²ƒμž…λ‹ˆλ‹€.
μžλ°”μŠ€ν¬λ¦½νŠΈ ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μ‚¬μš©ν•˜λŠ” μ—°μ‚°μžμ˜ μ’…λ₯˜λ‘œλŠ”
μ‚°μˆ , λŒ€μž…(λ³΅ν•©λŒ€μž…), 문자 κ²°ν•©, 증감, 비ꡐ, λ…Όλ¦¬μ—°μƒμž, 삼항쑰건 μ—°μƒμžκ°€ μžˆμŠ΅λ‹ˆλ‹€.
πŸ‘€ μ‚°μˆ  μ—°μ‚°μž
μ‚°μˆ  μ—°μ‚°μžμ—λŠ” λ”ν•˜κΈ°(+), λΉΌκΈ°(-), κ³±ν•˜κΈ°(*), λ‚˜λˆ„κΈ°(/), λ‚˜λ¨Έμ§€(%)κ°€ μžˆμŠ΅λ‹ˆλ‹€.
μ‚°μˆ  μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” 연산을 ν•  데이터가 2개 이상 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.
연산을 ν•  데이터λ₯Ό λ©‹μ§„ 말둜 μ—°μ‚°λŒ€μƒλ°μ΄ν„°(ν”Όμ—°μ‚°μž)라고 ν•©λ‹ˆλ‹€.
μžλ°”μŠ€ν¬λ¦½νŠΈ μ—°μ‚°μ—μ„œλŠ” 숫자끼리 직접 μ—°μ‚°ν•˜μ§€ μ•Šκ³  λ³€μˆ˜λΌλ¦¬ μ—°μ‚°ν•©λ‹ˆλ‹€.

     [κΈ°λ³Έν˜•]
     - λ³€μˆ˜A + λ³€μˆ˜B : λ³€μˆ˜A와 λ³€μˆ˜Bλ₯Ό λ”ν•œλ‹€.
     - λ³€μˆ˜A - λ³€μˆ˜B : λ³€μˆ˜Aμ—μ„œ λ³€μˆ˜Bλ₯Ό λΊ€λ‹€.
     - λ³€μˆ˜A * λ³€μˆ˜B : λ³€μˆ˜A와 λ³€μˆ˜Bλ₯Ό κ³±ν•œλ‹€.
     - λ³€μˆ˜A / λ³€μˆ˜B : λ³€μˆ˜Aμ—μ„œ λ³€μˆ˜Bλ₯Ό λ‚˜λˆˆλ‹€.
     - λ³€μˆ˜A % λ³€μˆ˜B : λ³€μˆ˜A의 κ°’μ—μ„œ λ³€μˆ˜B의 값을 λ‚˜λˆˆ λ‚˜λ¨Έμ§€ 값이닀.
    <script>
      var num1 = 15;
      var num2 = 2;
      var result; //μ—°μ‚° κ²°κ³Όλ₯Ό 담을 λ³€μˆ˜
      //num1κ³Ό num2λ₯Ό λ”ν•˜κΈ°
      result = num1 + num2;
      document.write(result, "<br/>"); //17
      //num1κ³Ό num2λ₯Ό λΉΌκΈ°
      result = num1 - num2; // 13
      document.write(result, "<br/>");
      //num1κ³Ό num2λ₯Ό κ³±ν•˜κΈ°
      result = num1 * num2; // 30
      document.write(result, "<br/>");
      //num1κ³Ό num2λ₯Ό λ‚˜λˆ„κΈ°
      result = num1 / num2; // 7.5
      document.write(result, "<br/>");
      //num1μ—μ„œ num2λ₯Ό λ‚˜λˆˆ ν›„μ˜ λ‚˜λ¨Έμ§€ κ°’
      result = num1 % num2; // 1
      document.write(result, "<br/>");
    </script>

πŸ‘» 문자 κ²°ν•© μ—°μ‚°μž
문자 κ²°ν•© μ—°μ‚°μžλž€ λ¬Έμžλ°μ΄ν„°μ™€ λ¬Έμ œλ°μ΄ν„°λ₯Ό λ”ν•˜μ—¬ κ²°ν•©ν•œ 것을 λ§ν•©λ‹ˆλ‹€.
즉, ν”Όμ—°μ‚°μžκ°€ λ¬Έμžν˜• 데이터 μž…λ‹ˆλ‹€.
λ§Œμ•½ ν”Όμ—°μ‚°μž 쀑 λ¬Έμžν˜• 데이터가 ν•˜λ‚˜λΌλ„ λ“€μ–΄μžˆμœΌλ©΄ λͺ¨λ“  ν”Όμ—°μ‚°μžλ“€μ˜ λ°μ΄ν„°λŠ”
λ¬Έμžν˜• λ°μ΄ν„°λ‘œ μžλ™ λ°˜ν™˜λ˜μ–΄ ν•˜λ‚˜μ˜ λ¬Έμžν˜• λ°μ΄ν„°λ‘œ λ°˜ν™˜λ©λ‹ˆλ‹€.

     [κΈ°λ³Έν˜•]
     1. λ¬Έμžν˜• 데이터 + λ¬Έμžν˜• 데이터
     ------------------------------------------
     var λ³€μˆ˜1 = '문자1'
     var λ³€μˆ˜2 = '문자2'
     λ³€μˆ˜1 + λ³€μˆ˜2 = '문자1문자2'
     2. λ¬Έμžν˜• 데이터 + μˆ«μžν˜• 데이터
     ------------------------------------------
     var λ³€μˆ˜1 = '문자1'
     var λ³€μˆ˜2 = '숫자'
     λ³€μˆ˜1 + λ³€μˆ˜2 = '문자1숫자'
    <script>
      var str1 = "학ꡐ쒅이 ";
      var str2 = "λ•‘λ•‘λ•‘ ";
      var str3 = 1234;
      var str4 = " μ–΄μ„œλͺ¨μ΄μž";
      var result;
      //학ꡐ쒅이 λ•‘λ•‘λ•‘ 1234 μ–΄μ„œλͺ¨μ΄μž
      result = str1 + str2 + str3 + str4; //문자+문자+숫자+문자
      console.log(result);
      //2468학ꡐ쒅이 λ•‘λ•‘λ•‘
      /* 
       문자 κ²°ν•© μ—°μ‚°μžμ—μ„œλŠ” ν”Όμ—°μ‚°μžμΈ μˆ«μžκ°€ 맨 μ•žμ— λ‘κ°œ 이상 μœ„μΉ˜ν•  경우
       숫자끼리 λ¨Όμ € 더해진 이후에 문자λ₯Ό λ§Œλ‚˜ 문자 결합이 μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€.
      */
      result = str3 + str3 + str1 + str2; //숫자+숫자+문자+문자
      console.log(result);
      //학ꡐ쒅이 λ•‘λ•‘λ•‘ 12341234
      result = str1 + str2 + str3 + str3; //문자+문자+숫자+숫자
      console.log(result);
    </script>

πŸ—¨οΈ μ†μœΌλ‘œ 직접 κ³΅λΆ€ν•œ λ‚΄μš©μ„ λ°”νƒ•μœΌλ‘œ μž‘μ„±ν•œ κΈ€μ΄λžλ‹ˆλ‹€ !
βœ–οΈ
μ•žμœΌλ‘œλ„ μ—΄μ‹¬νžˆ κ³΅λΆ€ν•΄μ„œ λ§Žμ€ λ‚΄μš©μ„ κ³΅μœ ν•˜κ² μŠ΅λ‹ˆλ‹€ :)

profile
🎧 α΄˜ΚŸα΄€ΚΙͺΙ΄Ι’: UXUI (Feat: coding) ─────────βšͺ───── 𝟸:𝟷𝟾 / 𝟹:πŸ»πŸΌβ € γ…€ ◄◄⠀▐▐⠀►► ───○ πŸ”Š

0개의 λŒ“κΈ€