웹_프론트_백엔드/프론트엔드

2020.08.08

shine94 2020. 8. 10. 14:45

1. 자바스크립트(JavaScript)
 : 프로토타입 기반 언어이자 객체 기반의 스크립트 프로그래밍 언어이다.

  

  ① 웹의 동작을 구현하기 위한 언어
  ② 웹 브라우저에서 사용(단, Node.js는 서버에서 동작)

  ③ 웹 브라우저에는 자바스크립트 엔진(인터프리터)가 내장
  ④ HTML문서 내에서 <script> 태그 사이에 작성
  ⑤ 대소문자를 구별
  ⑥ 객체 기반의 스크립트 언어

 

 

2. 웹과 자바스크립트의 역사
   ① 모자이크 웹 브라우저

   ② 넷스케이프 > 네비게이터(점유율 80%)

   ③ 정적인 웹사이트(HTML, CSS) > 브랜던 아이크(모카 > 라이브 스크립트)

   ④ 인터넷 익스플로러(점유율 90%) > JScript

   ⑤ JQuery(자바스크립트를 바탕으로 만든 라이브러리)

   ⑥ ECMA(이크마) Script(라이브 스크립트 > 자바스크립트)

       : 유명한 자바의 이름을 따서 만든 이유가 자바 언어처럼 인기를 얻었으면 하는 바람을 담아서 지었다고 함

   ⑦ 구글(크롬 v8) 

       : 기존의 자바스크립트는 인터프리터 방식이었기 때문에 속도가 느렸으나

         구글에서 크롬 v8을 만든 후 완전 속도가 빨라졌다고 한다.
   ⑧ ECMA Script 5(인터넷 익스플로러 10일때 표준화 작업 진행)
       [참고] BABEL : 이전 익스플로러에서도 웹 돌리고 싶을때 사용

   ⑨ ECMA Script 6(현재 제일 많이 사용하는 버전)

   ⑩ ECMA Script 7

   
   [SPA를 Ajax로 구현, 속도가 매우 느리다]

   : 느린 속도를 개선하고자 사용하는 것이 Node.js(이 외에도 React.js, Vue.js, Angular.js가 있음)이다.

 

   [주로 자바스크립트는]

   : 웹브라우저에서 사용자의 동적인 부분(프론트단)을 담당했었는데 Node.js가 생기면서 서버단(백단)도 가능하다.

     > 이기종의 언어를 프론트와 백단 각각 나눠쓰게 되면

        다른 두 언어가 잘 호응될 수 있도록 신경써서 코드를 작성했어야 했으나

        Node.js를 통해 프론트와 백에서 같은 언어를 사용하면

        호응도 높고 속도가 향상되는 장점이 있어 요즘 많이 사용하는 추세이다.

 

 

3. GitHub 연동

 : 단축키 Ctrl + ` 를 이용하여 TERMINAL 열기 > git remote add origin 깃허브주소

[추가] cmd 창을 이용해 연결된 git Repository 연결 주소 확인 가능



3. 자바스크립트의 출력
   ① document.write() 함수를 사용해  <body>에 출력

   ② console.log() 함수를 사용해 브라우저 console 창에 출력

 

** 1_자바스크립트_출력.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>
    <h2>자바스크립트 출력</h2>
    <script>
        // document : body를 나타냄, 
        // write() : 화면에다가 글자를 출력해달라는 의미의 함수
        document.write('안녕하세요 JavaScript!(Body)'); // Alt + L + O
        console.log("안녕하세요, JavaScript(콘솔)");    // 크롬의 개발자 모드 console창에서 확인 가능
    </script>
</body>
</html>

 

** 출력결과

 

 

4. 크롬은 개발자모드(F12)에서 직접 console창을 이용하여 코딩이 가능하다.

 

 

5. 외부 자바스크립트 파일로 적용
<script src="자바스크립트 파일 경로"></script>
 : 자바스크립트의 파일은 .js 확장자로 저장

 

** 2_외부자바스크립트_적용.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 src="JS/script.js"></script>
</head>
<body>
    <h2>외부 자바스크립트 출력</h2>
</body>
</html>

 

** JS/script.js

/*
    2020.08.08
    작성자 : 박빈나
    script.js(외부 자바스크립트 적용)
*/
document.write('안녕하세요 JavaScript!(Body)'); // HTML Body에 출력
console.log("안녕하세요, JavaScript(콘솔)");    // Console 창에 출력

 

** 출력결과

 


6. 주석
1) 자바스크립트

   // : 한 줄 주석문
   /* */ : 여러 줄 주석문

 

2) HTML
   <!-- HTML 주석문 -->


3) CSS

   /* CSS 주석문 */

 


7. 변수(Variable)
 : 데이터를 저장할 수 있는 메모리의 공간, 값 변경 가능,
   let 키워드를 이용하여 변수 선언시 선언되지 않은 변수를 사용하려고 하거나 접근하려고 하면 오류 발생
   
   let 변수명;   // 변수의 선언
   변수명 = 값; // 변수의 초기화
   
   let a;     // a라는 방을 만든다
   a = 10;  // 만든 방에 10을 넣는다
   a = 20;  // 들어있던 10을 20으로 변경

              // 그래서 이름이 변수(즉, 값이 바뀔 수 있다는 의미)

[참고] RAM -> 메모리

 

[참고] var 키워드는 더이상 사용하지 않음

> 아래의 사진에서 볼 수 있듯이 var 키워드를 이용하여 변수 가용 가능

> 또한 str에서 볼수 있듯이 선언 없이도 사용 가능

> 선언 없이도 가능하지만 먼저 변수를 사용한 이후에도 선언이 가능

> 즉, var를 사용하게 되면 내가 선언하지 않았는데 사용 가능하고
   내가 이미 선언했는데 밑에서 또 선언이 가능한 말도 안되는 현상이 발생

> let 키워드를 사용하면 위의 말도 안되는 상황을 방지 가능

> let 키워드보다 더욱 확실한 것은 코드에 "use strict" 기재하는 것!

   use strict란? strict mode 사용을 한다는 의미이며 코드를 엄격한 모드로 전환...!

 

** 3_변수.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>
    <h2>변수</h2>
    <script>
        // var를 사용하게 되면
        // 내가 선언하지 않았는데 사용이 가능하고
        // 내가 이미 선언했는데 밑에서 또 선언이 가능한
        // 이 말도 안되는 상황이 발생함..!!
        //var num;
        //num = 10;
        //console.log(num);

        //str = "JavaScript";
        //var str;
        //console.log(str);
        //var str;
        //console.log(str);
 
        "use strict";   // 엄격한 모드
        // 그래서 이러한 말도안되는 상황이 발생하지 않도록
        // let 코드를 사용함
        let num2;
        num2 = 10;
        console.log(num2);

        //let num2;
        //num2 = 20;
        //console.log(num2)

        //str2="JavaScript!";
        //console.log(str2);  // 변수를 선언하지 않음

    </script>
</body>
</html>

 

** 출력결과



8. 상수(constant)
 : 한 번 선언된 상수는 다시 재정의 할 수 없으며, 값을 재할당 할 수 없다.
   
   const 상수명 = 값;

 

 

9. 자바스크립트 데이터 타입
 : 타입이란 프로그램에서 다룰 수 있는 값의 종류를 의미

1) 숫자형(number)
 : 자바스크립트는 다른 언어와 달리 정수와 실수를 따로 구분하지 않는다,

   모든 수를 실수 하나로만 표현

 

** 4_데이터타입_숫자형.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>
    <h2>데이터타입 - 숫자형</h2>
    <script>
        "use strict";
        let num1 = 10, num2 = 11.11, num3 = 10e6;   // 10e6는 10의 6승을 의미
        console.log(num1);
        console.log(num2);
        console.log(num3);
    </script>
</body>
</html>

 

** 출력결과


2) 문자열형(string)
 : 자바스크립트에서는 문자열을 쌍따옴표나 따옴표로 둘러싸인 문자의 집합을 의미

 

** 5_데이터타입_문자열형.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>
    <h2>데이터타입 - 문자열형</h2>
    <script>
        "use strict";
        // 다른 언어에서는 문자열과 문자가 엄격하게 구분되나 자바스크립트는 구분하지 않음
        let num1 = 10;                  // 숫자형
        let num2 = 5;
        let str1 = "Hello JavaScript!"; // 문자열형
        let str2 = "Hello World";
        console.log(num1 + num2);
        console.log(num1 + str1);
        console.log(str1 + str2);
        console.log(str1 + " " + str2);
        /*
            + 연산자의 두가지 의미
            1. 산술연산자(덧셈)
            2. 연결연산자(문자열 결합)
        */
       console.log("류정원 : '여러분 반가워요'");
       console.log('류정원 : "여러분 반가워요"');
       console.log("안녕하세요.\n자바스크립트");
       console.log(`자바스크립트에서는 문자열을 
       쌍따옴표나 따옴표로 둘러싸인 
       문자의 집합을 의미합니다.`);
    </script>
</body>
</html>


** 출력결과

 

3) 불리언형(boolean)
 : 불리언 값은 true(참), false(거짓)으로 표현

 

** 6_데이터타입_불리언형.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>
    <h2>데이터타입 - 불리언형</h2>
    <script>
        "use strict";
        let b1 = true;
        let b2 = false;
        let b3 = (10 > 5);
        let b4 = (10 < 3);
        console.log('b1의 결과 : ' + b1);
        console.log('b2의 결과 : ' + b2);
        console.log('b3의 결과 : ' + b3);
        console.log('b4의 결과 : ' + b4);
    </script>
</body>
</html>

 

** 출력결과

 

4) undefined, null 형
 : 자바스크립트에서 null이란 object 타입이며, 아직 "값"이 정해지지 않은 것을 의미,

   또한 undefined란 null과는 달리 "타입"이 정해지지 않은 것을 의미,

   따라서 자바스크립트에서는 undefined는 초기화 되지 않은 변수나 존재하지 않은 값에 접근할 때 반환

 

** 7_데이터타입_null_undefined.html

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>데이터타입 - null, undefined</title>
</head>
<body>
    <h2>데이터타입 - null, undefined</h2>
    <script>
        "use strict"
        let num1;
        console.log(num1);

        let obj1 = {};  // 객체
        let obj2 = null;
        console.log(obj1);
        console.log(obj2);
    </script>
</body>
</html>

 

** 출력결과


5) 심볼형(Symbol)
 : ECMAScript6에서 추가된 데이터타입,

   유일하고 변경 불가능한 기본값을 만든다,

   또한 객체 속성의 key 값으로도 사용될 수 있다.

 

** 8_데이터타입_심볼.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>
    <h2>데이터타입 - 심볼</h2>
    <script>
        "use strict";
        const sym1 = Symbol('a');
        const sym2 = Symbol('a');

        // == 값(value)이 같은지 비교
        // === 값과 타입(value & type)이 같은지 비교
        console.log(sym1 === sym2);

        const sym3 = Symbol();
        const sym4 = sym3;
        // 왜냐하면 같은 곳을 가리키기 때문에 true가 출력됨
        console.log(sym3 === sym4);
    </script>
</body>
</html>

 

** 출력결과

 

 

10. 참고 사이트

1) w3s스쿨스

   https://www.w3schools.com/

 

2) 모질라

   https://developer.mozilla.org/ko/docs/Web/JavaScript

'웹_프론트_백엔드 > 프론트엔드' 카테고리의 다른 글

2020.08.30  (0) 2020.08.30
2020.08.29  (0) 2020.08.29
과제-자료를 받아 출력하는 프로그램  (0) 2020.08.14
2020.08.09  (0) 2020.08.12
학습목표 및 일정  (0) 2020.08.10