HTML

[HTML] javascript (1)

소댓 2023. 4. 16. 23:05

* JavaScript : 웹 브라우저에서 동작하는 경량 프로그램 언어

> 개발자 도구를 찍어봐야 javascript가 반영된 내용이 보임

 

- var 변수명
   var a = 10; ==> a라는 변수에 10의 값을 대입해 > 자료형은 안써도 됨

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title><javascript01 class="html"></javascript01></title>
    <script>
        // 자바 스크립트 : 웹 브라우저에서 동작하는 경량 프로그램 언어
 
        // var 변수명
        var a = 10// a라는 변수에 10의 값을 대입해 > 자료형은 안써도 됨
 
        var b;
        b = "안녕";
        document.write("Hello Javascript : " + a)
 
    </script>
</head>
<body>
    <!-- "Hello Javascript : 10"과 똑같은 명령이 위에서 실행됨 -->
</body>
</html>
cs

 

 


 

 

* 자바스크립트란? 

  script 태그는 다른 위치에도 올 수 있지만 주로 head에 옴
  java 와 javascript의 차이는? > 이름만 비슷함       

  java : 사자 > 컴파일용 언어       

  javascript : 바다사자 > 웹브라우저가 파싱 과정을 통해 해석해서 실행

  자바스크립트 <==> MS : JSCRIPT 

- 컴파일 언어 : C, C++, java, ...
- 비컴파일 언어 : SQL, HTML, javascript

 

- prompt : 사용자에게 값을 입력받게 하는 함수

- n1 : xxx n2 : xxx 형식으로 브라우저 화면에 출력

- document.write("n1 : "+n1+ ", n2 : "+n2);

 

  1. 화면에 출력
  document.write("<h1>" + n1 + " + " + n2 + " = " + n3 + "</h1>"); 
  태그 <h1>을 활용해서 화면에 크게 띄울 수 있음
 

  2. alert();  ==> 경고창 형식으로 출력
  alert("<h1>" + n1 + " + " + n2 + " = " + n3 + "</h1>"); 
   

  반복문 ==> 10번 실행
  for(var i = 0; i<10; i++) {
  alert("<h1>" + n1 + " + " + n2 + " = " + n3 + "</h1>"); 
  }

  3. console.log() ==> 콘솔에서 로그 기록 확인 가능

 

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript02.html</title>
    <script>
        // script 태그는 다른 위치에도 올 수 있지만 주로 head에 옴
        // java 와 javascript의 차이는? > 이름만 비슷함
        // java : 사자 > 컴파일용 언어
        // javascript : 바다사자 > 웹브라우저가 파싱 과정을 통해 해석해서 실행
        // 자바스크립트 <==> MS : JSCRIPT 
 
        // 컴파일 언어 : C, C++, java, ...
        // 비컴파일 언어 : SQL, HTML, javascript
 
        var a = 10;
        var n1 = prompt("첫번째 입력값");
        var n2 = prompt("두번째 입력값");
        var n3 = parseInt(n1) + parseInt(n2); // 정수형으로 형변환
        // prompt : 사용자에게 값을 입력받게 하는 함수
 
        // n1 : xxx n2 : xxx 형식으로 브라우저 화면에 출력
        // document.write("n1 : "+n1+ ", n2 : "+n2);
        // 1. 화면에 출력
        // document.write("<h1>" + n1 + " + " + n2 + " = " + n3 + "</h1>"); 
        // 태그 <h1>을 활용해서 화면에 크게 띄울 수 있음
 
        // 2. alert();  ==> 경고창 형식으로 출력
        // alert("<h1>" + n1 + " + " + n2 + " = " + n3 + "</h1>"); 
 
        // 반복문 ==> 10번 실행
        // for(var i = 0; i<10; i++) {
        //     alert("<h1>" + n1 + " + " + n2 + " = " + n3 + "</h1>"); 
        // }
 
        // 3. console.log() ==> 콘솔에서 로그 기록 확인 가능
        for(var i = 0; i<10; i++) {
             console.log("<h1>" + n1 + " + " + n2 + " = " + n3 + "</h1>"); 
         }
 
    </script>
</head>
<body>
    
</body>
</html>
cs

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript03.html</title>
    <script>
        // 사용자로부터 이름을 입력받아
        var name = prompt("이름을 입력하세요.");
 
        // 화면에 xxx님 환영합니다. h1태그로 출력
        document.write("<h1>"+name+"님 환영합니다."+"</h1>"); // 바디에 바로 출력
 
        // 경고창에 출력
        // alert("<h1>"+name+"님 환영합니다."+"</h1>");
 
        console.log("<h1>"+name+"님 환영합니다."+"</h1>");
 
 
    </script>
</head>
<body>
    
</body>
</html>
cs

 

 


 

 

 

* 자바스크립트에서 사용자정의 함수 만들기 ==> 메서드와 같음..
   function 함수명(매개변수) {
   처리할 코드;
    }

 

- button : 버튼을 누르면 어떤 행위가 이루어지도록

 

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
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript04.html</title>
    <script>
        // 자바스크립트에서 사용자정의 함수 만들기 ==> 메서드와 같음..
        // function 함수명(매개변수) {
        //    처리할 코드;
        //  }
        function printMsg() {
            console.log("하하하");
            console.log("호호호");
        }
 
    </script>
</head>
<body>
    <!-- 버튼을 눌렀을 때 어떤 행위를 이루어지게 하는 것이 '자스'가 하는 일 -->
    <input type="button" value="출력1" onclick="alert('메롱~~')"> 
    <!-- ""와 '' 모두 자스에서는 문자열이지만 시각적으로 구분 -->
    <!-- <input type="button" value="출력2" onclick="함수명(매개변수)"> 
          ==> 클릭하면 매개변수를 전달해서 함수를 실행
            alert, document 등은 내장함수-->
    <input type="button" value="출력2" onclick="printMsg();">
</body>
</html>
cs

 

 

- 구구단 3단 버튼

 

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
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript05.html</title>
    <script>
        function print3Dan() {
            
            for(var i=1; i<=9; i++) {
                console.log(" 3 * "+ i + " = "+(3 * i));
                document.write(" 3 * "+ i + " = "+(3 * i)+"<br>");
                // document.write("<br>");
            }
 
        }
 
        
    </script>
</head>
<body>
    <!-- 
        3단 출력 버튼을 누르면 print3Dan() 를 호출하고 
        콘솔에 구구단 3단을 출력하게 하려고 한다.
    -->
    <input type="button" value="3단 출력" onclick="print3Dan();">
 
    
</body>
</html>
cs

 

 

 

- 버튼을 클릭할 때마다 콘솔에 클릭 횟수가 출력되도록

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript06.html</title>
    <script>
        // 전역변수
        var cnt = 0;
        function run() {
            // 지역변수
            // cnt ++; => 변수 사용하고 증가
            console.log(++cnt); // 증가하고 변수 사용
        }
 
    </script>
</head>
<body>
    <!-- 버튼을 클릭할 때마다 콘솔에 클릭 횟수가 출력되도록 코드를 작성하세요 -->
    <input type="button" value="클릭" onclick="run();">
</body>
</html>
cs

 

 


 

 

* 누적합 구하기(콘솔) => 사용자가 입력한 숫자까지!

 

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
31
32
33
34
35
36
37
38
39
40
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript07.html</title>
    <script>
        // 1. 사용자로부터 숫자 입력받기 (100) 변수명 n
        // var n = prompt("숫자입력:");
 
        // 2. 문자를 숫자로 변환 ==> 변수 재활용 가능!(자료형 상관 없어서..)
        // n = parseInt(n);
        // 자스는 동적 타이핑 : 변수 자료형을 처음부터 선언하지 않음 > 대입되는 순간 자료형 결정
        // 자바는 정적 타이핑
 
        // 3. 1 증가한 값을 콘솔에 출력 n:101
        // console.log("n : "+ ++n);
 
        function cum() {
            var n = prompt("숫자입력:");
            parseInt(n);
 
            // 4. 1부터 입력한 값까지 누적합 구하기 : 함수를 정의
                    var hap = 0;
                    for(var i = 1; i<=n; i++) {
                        hap += i;
                    }
                    console.log("1부터 " + n + "까지 누적합 : " + hap);
                }
 
        // 5. 함수를 실행
        // cum();
        
    </script>
</head>
<body> 
    <input type="button" value="누적합 구하기" onclick="cum();">
    <!-- 클릭이 일어나야 cum이라는 함수가 수행됨 -->
    
</body>
</html>
cs

 

 

* 누적합 구하기(콘솔) => 내가 매개변수로 전달한 값까지 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript08.html</title>
    <script>
        function cum(a) {
            a = parseInt(a);
            var hap = 0;
            for(var i=1; i<=a; i++){
                hap += i;
            }
            console.log(hap);
        } 
    </script>
</head>
<body>
    <input type="button" value="출력" onclick="cum(50);">
    <!-- 콘솔에 내가 전달해준 숫자를 출력 -->
</body>
</html>
cs

 


 

* eval()

   eval ==> 내장함수
  변수를 javascript의 함수나 연산자처럼 사용하는 함수

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript09.html</title>
    <script>
        // eval() ==> 내장함수
        // 변수를 javascript의 함수나 연산자처럼 사용하는 함수
        
        var msg = "3*2";
        var data = eval(msg);
        console.log(data);
        // ==> 이러한 방법으로 해킹에 많이 사용되기도 함
 
    </script>
</head>
<body>
    
</body>
</html>
cs

 

- 텍스트열에 입력된 텍스트를 콘솔에 출력(value)

 

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
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript10.html</title>
    <script>
 
        // cal() 함수를 정의하고
        function cal() {
            // 함수 호출 시 콘솔에 hello 메세지를 출력
            console.log("hello"); // = System.out.println("문자열");
 
            // 자바스크립트는 모든 요소를 객체로 생각함.. 
            // document ==> 현재의 '나'를 가리키는 객체(this 정도..)
            var txtEle = document.getElementById("txt"); // Id로 Element를 가져와라
            console.log(txtEle); // <input type="text" name="" id="txt"> 출력
            console.dir(txtEle);
            console.log(txtEle.value); // dir에 저장된 value 값 가져오기
        }
       
    </script>
</head>
<body>
    <input type="text" name="" id="txt">
    <!-- 전송 버튼을 클릭하면 cal() 호출 -->
    <input type="button" value="전송" onclick="cal();">
</body>
</html>
cs

 

 

- 텍스트 입력값끼리 빼기 연산 > 콘솔 / 화면 출력

 

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript12.html</title>
    <script>
        // 버튼을 누르면 앞에 입력한 값에서 뒤에 입력한 값을 뺀 값을 콘솔에 출력하세요
        
        function cal() {
        // 1. ID가 TXT1인 엘리먼트 객체 가져오기
        var txt1Ele = document.getElementById("txt1");
 
        // 2. ID가 TXT2인 엘리먼트 객체 가져오기
        var txt2Ele = document.getElementById("txt2");
 
        // 멤버변수 접근
        // console.dir(txt1Ele);
        // console.dir(txt2Ele);
 
        // 3. 두 객체로부터 값(value) 가져오기
        var num1 = txt1Ele.value;
        var num2 = txt2Ele.value;
 
        // console.log("num1 : " + num1);
        // console.log("num2 : " + num2);
 
        // 4. 두 변수를 숫자로 형변환
        num1 = parseInt(num1);
        num2 = parseInt(num2);
 
        // 5. 연산하기
        var result = (num1-num2);
 
        // 6. 연산된 결과를 콘솔에 출력하기
        console.log(num1 + " - " + num2 + " = " + result);
 
        // 계산 결과를 화면에 출력하기 위해 (2)
        var resultEle = document.getElementById("result");
        resultEle.value = result;
        }
    </script>
</head>
<body>
    <input type="text" name="" id="txt1" size="5"> -
    <input type="text" name="" id="txt2" size="5">
    <input type="button" value="=" onclick="cal();">
 
    <!-- 계산 결과를 화면에 출력하기 위해 (1) -->
    <input type="text" name="" id="result">
 
</body>
</html>
cs

 

 

- 텍스트 입력값 계산(연산자도 입력) > 콘솔/화면 출력

 

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
31
32
33
34
35
36
37
38
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript12.html</title>
    <script>
        function cal() {
            // 객체 가져오기
            var txt1Ele = document.getElementById("txt1");
            var txt2Ele = document.getElementById("txt2");
            var operEle = document.getElementById("oper");
 
            // console.log(txt1Ele);
            // console.log(txt1Ele.value);
 
            // 객체로부터 값(value) 가져오기
            var num1 = txt1Ele.value;
            var num2 = txt2Ele.value;
            var oper = operEle.value;
 
            var msg = num1 + oper + num2;
            // console.log(msg);
            var num3 = eval(msg); // 3*2 ==> 6  1+5 ==> 6
            
            var resultEle = document.getElementById("result");
            resultEle.value = num3;
            console.log(num1 + " " + oper + " " + num2 + " = " + num3);
        }
    </script>
</head>
<body>
    <input type="text" name="" id="txt1" size="5">
    <input type="text" name="" id="oper" size="3">
    <input type="text" name="" id="txt2" size="5">
    <input type="button" value="=" onclick="cal();">
    <input type="text" name="" id="result">
</body>
</html>
cs