티스토리 뷰

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>자바스크립트</title>
  <!-- 스타일 시트 -->
  <style>
   /* 스타일시트 내용 */
  </style>
  <!-- 자바 스크립트 부분-->
  <script>
    // 한 줄 주석
    /* 여러 줄 주석 */
    // html이나 css와 관련된 제어가 있을땐 반드시 <head></head> 사이에 작성
   
   /* ECMA(유럽컴퓨터제조협회)에서 자바스크립트를 ECMAScript라는 이름으로 표준화함
      자바스크립트(=ECMAScript) : 브라우저 안에서 실행되는 프로그래밍 언어(객체지향 프로그래밍언어)
   */    
  </script>
</head>
<body>

 

 

 

 

자바스크립트 기초

 

 

 ● 참조 사이트 :

      ○  모던 자바스크립트 튜토리얼 :https://ko.javascript.info/

 

모던 JavaScript 튜토리얼

 

ko.javascript.info

        ○ MDN 웹 문서 : https://developer.mozilla.org/ko/docs/Web

 

개발자를 위한 웹 기술 | MDN

웹의 개방성은 개발자들에게 많은 기회를 제공합니다. 하지만 웹 기술을 잘 활용하려면 우선 그 사용 방법을 잘 알아야 합니다. 아래의 링크들을 확인하여 다양한 웹 기술을 배워보세요.

developer.mozilla.org

          ○ 라이브러리 알아보기

             구글 : “popular javascript library 연도” 검색

             구글 : “자바스크립트 라이브러리 순위” 검색

 

   ● 자바스크립트(=ECMAScript) : 브라우저 안에서 실행되는 프로그래밍 언어(객체지향 프로그래밍언어)

   ● ECMA(유럽컴퓨터제조협회)에서 자바스크립트를 ECMAScript라는 이름으로 표준화함

 

 

 

1. 간단한 출력 연습

 alert('Hello Javascript~~~') ;  // ; 실행문장의 끝, 생략 가능
 console.log('안녕!! 자바스크립트')  //console.log() : ()안의 내용을 콘솔창에 띄우기
 document.write('Hello 자바스크립트~~~  즐거운 시간')//브라우저 본문에 표시

 

 

 

 2. 자바스크립트 기본 용어

       a. 키워드 : 자바스크립트가 처음 만들어질 때 정해 놓은 특별한 의미가 있는 단어

            ●  alert, true, false, prompt, if,.…

       b. 식별자 : 프로그래밍 언어에서 이름을 붙일 때 사용하는 단어(함수, 메소드, 변수, 상수,...)

       c. 식별자 규칙

              ● 키워드는 사용할 수 없음

              ● 숫자로 시작할 수 없음(첫 글자는 반드시 문자 또는 _) 3test(x) -> test3, _3test

              ● 특수문자는 _(underbar, 밑줄)와 $만 허용됨

              ● 공백 문자를 사용할 수 없음 (test 3 (x) -> test3, test_3)

              ● 대소문자를 구분

        d. 식별자 구분

              ● 클래스 : 첫 글자를 항상 대문자로 시작

              ● 변수, 인스턴스(객체), 함수, 메소드 : 항상 소문자로 시작

              ● 여러 단어의 조합 : 각 단어의 첫 글자를 대문자로 errTest , 또는 _로 단어의 첫 글자들을 연결 err_test

             

   3. 템플릿 문자열

          ● `(백틱)

          `$(변수 또는 수식)`

 

 

 

★변수와 상수

   1. 변수 : 변할 수 있는 값(그릇)

   2. 변수 선언

        a. var 변수명 = 값; var result = 30, var a=8

              ● var : 변수를 중복해서 선언 가능, 변수가 속하는 범위가 애매함

              ● var result = 3

                 var result = 7 => result에는 마지막에 선언한 7이 담기

         b. let 변수명 = 값 let result = 30, let a=8

              ● 중복해서 선언할 수 없음, 변수 범위가 명확

              ● let result = 3

                 let result = 7 => 에러, 중복(위하고 아래에서)해서 선언해서

    3. 상수 : 값이 한번 정해지면 절대 변하지 않는 값, 항상 같은 수

          a. const 상수이름 = 값

              const PI = 3.141592

 

<script>
//원의 넓이 : 반지름 * 반지름 * 3.14
//반지름 입력받아서 원의 넓이 구하기
const PI = 3.14;
let radius = 0;
let area = 0.0;

radius = Number(prompt("반지름 입력"));
area = radius * radius * PI;

console.log(area);
</script>

 

 

 

 

★ 자료형 및 연산자

● 자료 : 프로그래밍에서 프로그램이 처리할 수 있는 모든 것

● 자료형 : 자료 형태에 따라 나눠 놓은 것(숫자, 문자, 불형....)

● 자바스크립트의 자료형

      ○ 기본 자료형(primitives) : 숫자, 문자열 , 불

      ○ 객체 자료형(object) : 함수, 배열,……

● 기본 자료형

   숫자 - number, 문자열 - string , 불 - boolean(true, false)

● false : 0, true : 1(0이외의 값)

 

1. 문자열 자료형 : 글자 하나 또는 한 자 이상

      ● 반드시 " " 나 ' '로 묶어서 표현

      ● "" , '' - 빈 문자열

        3+7 => 10

        '3+7' => 문자열, 3+7

        5 => 숫자 5

        '5', "5" => 문자열 5

alert('3+7=' + (3+7) + '입니다.')  => 3+7=10입니다.

 

      ● 문자열 연결 연산자 : +(연달아서 뒤에 것을 연결 해줘) 또는 백틱(` `)을 활용

      ● 템플릿 문자열 : 백틱(``)으로 감싸고 내부에 ${ }를 넣어 표현

// `${식 또는 변수}`
'3 + 7 =' + (3+7) + '입니다.'
`3 + 7 = ${3+7} 입니다.`

      

 

 2. 숫자 자료형 : 실수와 정수를 모두 같은 자료형으로 인식

 3. 불린(Boolean) 자료형 : 참(true)과 거짓(false)을 표현할 때 사용

       a. = : 컴퓨터에서는 대입 연산자로 사용, 오른쪽의 내용을 처리한 후 왼쪽에 대입(담아 주겠다.)

       b. ! : 부정(반대로 처리하라, !true => false, !false => true)

 

 4. 산술 연산자

* 숫자 연산
        + 더하기  7 + 2  => 9
        - 빼기    7 - 2  => 5
        * 곱하기  7 * 2  => 14
        / 나누기  7 / 2  => 3.5
        % 나머지  7 % 2  => 1
        ** 제곱   7 ** 2 => 49
        
  * 홀수 :  숫자 % 2 === 1
    짝수 :  숫자 % 2 === 0
    n의배수 : 숫자 % n === 0
             숫자 % 3 === 0  : 3의배수
             숫자 % 5 === 0 : 5의 배수

 

4. 비교 연산자

 === 왼쪽과 오른쪽이 같다( 값과 자료형까지 같은지 비교)
 == 왼쪽과 오른쪽이 같다(값이 같은지 비교)
 !== 왼쪽과 오른쪽이 같지 않다(다르다)
 != 왼쪽과 오른쪽이 같지 않다.
 > 왼쪽이 오른쪽 보다 크다(초과)
 < 왼쪽이 오른쪽 보다 작다(미만)
 >= 왼쪽이 오른쪽보다 크거나 같다.(이상)
 <= 왼쪽이 오른쪽보다 작거나 같다.(이하)
      
 * 문자열도 크기 비교 가능 : 사전 순서로 크기 비교
              사전 앞에 있는 값일 수록 작은 값

 

5. 불 부정/논리합/논리곱 연산자

 ! 부정
 && 논리곱(and)  : 왼쪽과 오른쪽 모두 참일때만 결과가 참
 || 논리합(or) : 왼쪽과 오른쪽 중 적어도 하나 이상만 참이면 결과가 참

 

6. 삼항 연산자

    조건식 ? 조건식이 참일 때 실행할 값 : 조건식이 거짓일 때 실행할 값

 

7. 대입 연산자

    = (오른쪽 자료를 왼쪽에 대입)

   수학: =은 같다는 의미, 컴퓨터: =는 대입의 의미

 

8. 복합 대입 연산자

  += 기존 변수의 값에 값을 더함 
        a += 2  => a = a + 2,  a += 1  => a = a + 1
   -= 기존 변수의 값에 값을 뺀다  
        a -= 2  => a = a - 2,  a -= 1  => a = a -1
   *= 기존 변수의 값에 값을 곱하기 
        a *= 2  => a = a * 2,   a *= 1  => a = a * 1
   /= 기본 변수의 값에 값을 나눗셈 
        a /=2   => a = a / 2,   a /=1  => a = a / 1
   %= 기존 변수의 값에 값을 나머지 
        a %= 2  => a = a % 2,   a %= 1 => a = % 1

 

9. 증감 연산자

  변수++ : 기존의 변수 값에 1을 더함(후위)
         a++  =>  a = a + 1, a += 1
         변수가 가지고 있는 값을 계산에 먼저 사용하고 난 후에 변수 값을 1증가
       ex)  let a=3, b=2, c=4
            c = a++  + b    => a=4, b=2, c=5

   ++변수 : 기존의 변수 값에 1을 더함(전위)
         ++a  =>  a = a + 1, a += 1
        변수가 가지고 있는 값을 1 증가시킨 후 계산에 참여
        ex) let x=5, y=3, z=2
           z = ++x + y  => z : 9,  x=6, y=3

   변수-- : 기존의 변수 값에 1을 뺌(후위)
         a--  =>  a = a - 1, a -= 1

   --변수 : 기존의 변수 값에 1을 더함(전위)
        --a  =>  a = a - 1, a -= 1

 

 

★ prompt() 함수 confirm() 함수

 

1. prompt() 함수

    형식) prompt('메시지 입력','기본 입력 문자열')

    출력 결과는 문자열로 출력(숫자도 문자열로 입력)

<script>
//원의 넓이 : 반지름 * 반지름 * 3.14
//반지름 입력받아서 원의 넓이 구하기
const PI = 3.14
let radius = 0;
let area = 0.0;

radius = Number(prompt("반지름 입력"));
area = radius * radius * PI;

console.log(area);
</script>

 

2. confirm() 함수

    형식) confirm('메시지 문자열')

    출력 결과는 boolean형으로 출력(true, false)

<script>
// 3월 10일 제주도 여행 찬성 또는 반대를 알려 주세요
//  확인 : 찬성 ,  취소:반대

let result = confirm("3월 10일 제주도 여행 찬성 또는 반대를 알려 주세요\n (확인:찬성, 취소:반대)");
// 확인 - true,   취소 - false 
alert("당신은 " + result + "입니다");

</script>

 

 

 

★ 자료형 변환

1. 문자열을 숫자로 변환

     a. Number() : 숫자(정수, 실수)로 변환, 오직 숫자형 문자만 숫자로 변형

'1300원' -> 숫자로 변환 불가능
'1300'  -> 숫자로 변환 가능(1300)
Number('34') -> 34
Number('1300원') -> NaN(Not a Number)

 

     b. parseInt() : 정수로 변환, 숫자+문자열 => 앞의 숫자만 숫자로 변환

'1300원'  -> 1300
'1300'   -> 1300
23.4  -> 23
parseInt('1300원') -> 1300

     

      c. parseFloat() : 실수(소숫점이 있는 숫자)로 변환

'1.5$' -> 1.5
'1300' -> 1300
'1587.25' -> 1587.25

 

      d. 연산자 -, * , / 를 사용

           숫자가 아닌 다른 자료에서 0을 빼거나, 1을 곱하거나 또는 1로 나누면 숫자 자료형으로 변환

"52" - 0  => 52
"52" * 1  => 52
"52" / 1  => 52

true - 0  => 1

 

 

 

 

2. 숫자를 문자열로 변환 : String( ) 함수

    String(자료) 또는

    +(문자열 연결 연산자)

String(35.2)  -> '35.2'
String(true)  -> 'true'
35 + ''  -> '35'
35 + ""  -> '35'

 

 

 

3. Boolean 자료형으로 변환

    Boolean(자료) : 대부분 true로 변환

    다만, 0, NaN, ‘…’, “…”(빈문자열), null, undefined 5개의 자료형은 false로 변환

    Boolean(”0”) 과 Boolean(”true”)는 문자열이므로 true 임

 

 

<script>
//숫자를 입력받아, 그 숫자가 짝수인지 홀수인지 판별
// 1. 키보드로부터 입력 -> prompt()
/* 2. 문자열을 숫자로 변환
     1) Number() : 정수/실수로 변환, 오직 숫자형 문자만 숫자로 변환
                '1300원'  -> Number('1300원')는 숫자로 변환 불가
                                NaN(Not a Number)
                '13'      -> Number('13')  -> 13
     2) parseInt() : 정수로 변환, 
                  숫자+문자열 -> 앞의 숫자만 숫자로 변환
                 "1300원"  -> parseInt("1300원")  => 1300
                 "1300"    -> parseInt("1300")  => 1300
                 23.4      -> parseInt(23.4)    => 23

     3) parseFloat() : 실수(소숫점이 있는 숫자)로 변환
                "1.5$"  -> parseFloat("1.5$")   => 1.5
                "1300"  -> parseFloat("1300")   => 1300
                "1587.25" -> parseFloat("1587.25")  => 1587.25

  3. 숫자를 문자열로 변환
      1) + (문자열 연결 연산자)
           35 + "" -> "35"
           35 + '' -> '35'
      2) String(35.2) => "35.2"
      3) String(true) => "true"

  4. 짝수 / 홀수 판별
      숫자 % 2 === 1   : 홀수
      숫자 % 2 === 0   : 짝수
      
  5. 삼항 연산자
      (조건식) ? true : false

*/

//1. 입력 받기 -> 숫자 변환
let number = Number(prompt("정수 입력>>"));
// let number = parseInt(prompt("정수 입력>>"));

//2. 홀수/짝수 판별
let result = (number % 2 === 1)? "홀수" : "짝수"; 

console.log("당신이 입력한 숫자는 " + number + "\n" + result);
alert(`당신이 입력한 숫자는 ${number}이고, ${result}입니다` );
document.write(result);

</script>

 

 

<script>
//원의 넓이 : 반지름 * 반지름 * 3.14
//반지름 입력받아서 원의 넓이 구하기
const PI = 3.14
let radius = 0;
let area = 0.0;

radius = Number(prompt("반지름 입력"));
area = radius * radius * PI;

console.log(area);
</script>

 

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>원의 넓이 구하기</title>

  <script>
   //문) 원의 반지름을 입력받아 원의 넓이(반지름 * 반지름 * 3.14)와 
   // 원의 둘레(반지름 * 2 * 3.14) 구하기
   // 출력형태
   // 입력받은 반지름 :  ~~
   // 원의 넓이 : ~~
   // 원의 둘레 : ~~

    //alert(), document.write(), console.log()
    const radius = parseInt(prompt("반지름 입력하세요>> ", "정수 입력"));
    const PI = 3.14;


    //1. alert()
    let output = "";  //출력할 내용을 담을 변수
        // output = output + "입력받은 반지름 : " + radius + "\n";
        // output += "입력받은 반지름 : " + radius + "\n";
        output += `입력받은 반지름 : ${radius}\n`;
        // output += `원의 넓이 : ${radius * radius * PI} \n`;
        // output += `원의 둘레 : ${radius * 2 * PI}`;

        let area = radius * radius * PI;
        area = area.toFixed(2); // toFixed(소수 부분의 자릿수)
    
       let area2 = radius * 2 * PI;
        area2 = area2.toFixed(2);

        output += `원의 넓이 : ${area}\n`;
        output += `원의 둘레 : ${area2}`;
    alert(output);

    //2. document.write()
    let output1 = "";  //출력할 내용을 담을 변수
        output1 += `입력받은 반지름 : ${radius}<br>`;
        output1 += `원의 넓이 : ${area}<br>`;
        output1 += `원의 둘레 : ${area2}`;5
    document.write(output1 + "<br><br>")
  </script>
</head>
<body>

 </body>
</html>

 

 

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>원의 넓이 구하기</title>

</head>
<body>
  <div class="inner"></div>
  <hr> <!-- 수평선 -->
  <div id="text"></div>  

  <script>
    const radius_1 = parseInt(prompt("반지름 입력하세요>> ", "정수 입력"));
    const PI_1 = 3.14;

    
    let area_1 = radius_1 * radius_1 * PI_1;
        area_1 = area_1.toFixed(2); // toFixed(소수 부분의 자릿수)
    
    let area_2 = radius_1 * 2 * PI_1;
        area_2 = area_2.toFixed(2);

    let output2 = "";  //출력할 내용을 담을 변수
      output2 += `입력받은 반지름 : ${radius_1}<br>`;
      output2 += `원의 넓이 : ${area_1}<br>`;
      output2 += `원의 둘레 : ${area_2}`;
    
    const div_inner = document.querySelector(".inner");
    const div_text  = document.querySelector("#text");

    div_inner.innerHTML = output2;
    div_text.innerHTML = output2;
  </script>
</body>
</html>

 

 

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title></title>
  <script>
    //window.onload = function(){}
    document.addEventListener("DOMContentLoaded",function(){

     //1. 본문의 태그 읽어오기
     const div_inner = document.querySelector(".inner"); 
                                     //태그 중 class명이 inner인 태그
     const div_text = document.querySelector("#text");
                                     //태그 중 id명이 text인 태그

     //2. 반지름 입력받기
      const r = parseInt(prompt("반지름 입력>> "));
      const PI = 3.14;

     //3. 본문에 넣을 문장들 작성하기
     let output = "";

     //1번
    // output = "" + "입력받은 반지름 : " + r + "<br>" +  "원의 넓이 : " + (r * r * PI) + "<br>" + "원의 둘레 : " + (r * 2 * PI);
     
    //2번 - 1번을 간략화
    // output = output  + "입력받은 반지름 : " + r + "<br>";
    // output = output + "원의 넓이 : " + (r * r * PI) + "<br>";
    // output = output + "원의 둘레 : " + (r * 2 * PI);

     //3번 - 1번과 2번을 더 간략화
     output += "입력받은 반지름 : " + r + "<br>";
     output += "원의 넓이 : " + (r * r * PI) + "<br>";
     output += "원의 둘레 : " + (r * 2 * PI);
     
    
     //3. 본문에 내용을 넣기
      div_inner.innerHTML = output;
      div_text.textContent = output;

    /*
      태그.innerHTML : 태그의 내용을 읽어오기, html 태그를 적용
      태그.textContent : 태그의 내용을 읽어오기, 보안 유리,
                         html태그를 문자로 인식

      태그.innerHTML = 값; // 값을 태그 안에 쓰기(html태그를 적용)
      태그.textContent = 값; //값을 태그 안에 쓰기, html태그를 문자열로 처리
    */

     //4. 스타일 적용
      // div_inner.style.color = "red";
      // div_text.style.color = "blue"; 

    });
  </script>
</head>
<body>
  <div class="inner"></div>
  <hr> <!-- 수평선 -->
  <div id="text"></div>  
 </body>
</html>

 

 

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>본문에 글자 넣기</title>

</head>
<body>
  <div class="box1"></div> <!-- Hi Javascript -->
  <hr>
  <div id="box2"></div> <!-- 즐거운 시간 -->
  
  <script>
    //본문의 태그를 읽어 변수에 저장
    const box1 = document.querySelector(".box1");
    const box2 = document.querySelector("#box2");

    //본문의 태그에 글자 넣기
    box1.textContent = "Hi Javascript";
    box2.textContent = "즐거운 시간" ;
  </script>
</body>
</html>

 

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>본문에 글자 넣기</title>
  <script>
    // document.addEventListener("이벤트", 이벤트리스너);//이벤트리스너=콜백함수
    document.addEventListener("DOMContentLoaded",function(){
      //본문의 태그를 읽어 변수에 저장
        const box1 = document.querySelector(".box1");
        const box2 = document.querySelector("#box2");

        //본문의 태그에 글자 넣기
        box1.textContent = "Hi Javascript";
        box2.textContent = "즐거운 시간" ;
    });    
  </script>
</head>
<body>
  <div class="box1"></div> <!-- Hi Javascript -->
  <hr>
  <div id="box2"></div> <!-- 즐거운 시간 -->
</body>
</html>

 

 

    ● 변수

<script>
//변수 - 그릇, 마지막에 담긴 값 하나만 기억
let name = "홍길동";
document.write(name);

name = "하늘";
document.write("<br>" + name);

const score = 70;
document.write("<br>" + score);

score = 90;  //const 로 선언한 변수는 처음에만 값을 넣을 수 있고
           // 나중에 다른 값을 넣을 수 없음
document.write("<br>" + score);

</script>

 

 

<script>
/*
  ** 홍길동님 성적표 **
  이름 : 홍길동
  국어 : 90
  영어 : 80

  ** 이경희님 성적표 **
  이름 : 이경희
  국어 : 70
  영어 : 85
*/
//변수를 선언하고 초기화
let name = "";
let eng = 0;
let kor = 0;

name = prompt("이름을 입력>> ");
eng = Number(prompt("국어 점수 입력>> ")); //형변환
kor = Number(prompt("영어 점수 입력>> ")); //형변환
// kor = parseInt(prompt("영어 점수 입력>> ")); //형변환
// avg = parseFloat(prompt("영어 점수 입력>> ")); //형변환

document.write("** " + name + "님의 성적 ** <br>");
document.write("이름 : " + name + "<br>");
document.write("국어 : " + kor + "<br>");
document.write("영어 : " + eng + "<br>");
document.write("합계 : " + (kor + eng) + "<br>");
</script>

 

<script>
// 음료를 주문하세요.
// 주문한 음료는 ~~ 입니다.

//1. 변수 선언
let order = "";
//2. 키보드로부터 입력 받고

order = prompt("음료를 주문하세요>>");

//3. 출력
document.write("주문한 음료는 " + order + "입니다.");
</script>

 

 

 

 

 

 

 

 

 

 

'Front-End Programming > JavaScript' 카테고리의 다른 글

배열(Array)  (3) 2025.03.18
제어문  (0) 2025.03.18
javascript 동기와 비동기,ajax get,post 예제_오전  (1) 2025.03.12
javascript 빠진 .html  (0) 2025.03.11
javascript ajax 예제  (1) 2025.03.11
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함