Day1 JavaScript 변수 + 상수+ 데이터 타입 + 대화 상자

2023. 4. 5. 02:00Javascript

🟡자바스크립트 특징
1. 객체기반의 스크립트 언어
2. 대소문자를 구별
3. 문장끝에 세미콜론을 사용(생략 가능)

🟡자바스크립트 출력
- Web API Console을 통해 브라우저 Console창에 출력 (F12에 Console 창)

    [사용법]
    1. <script> ~ </script>
    2. 외부 자바스크립트 사용 script src='파일명'></script>


🟡자바스크립트 실행 순서
- 인터프리터 방식이므로 위에서 아래로 실행


🟡Javascript 파일 및 문장을 <head> ~ </head> 사이에 잇을 경우

순서 :html 문서의 시작 -> <head>에 있는 <script>를 다운로드 / 실행 -> <body>에 있는 HTML을 실행 후 끝
    
    결과: 외부 script 파일을 사용할 경우 script 파일 다운로드가 늦을때 HTML이 실행되지 않는 상태에서 빈 화면이 보일 수 있음




🟡Javascript 파일 및 문장을 <body> 끝에 넣을 경우
html 문서의 시작 -> <body> html 태그 실행 -> <script> 다운로드 실행 -> 끝

    결과: 완벽하지 않은 HTML이 먼저 보여 잘못된 UI가 보일수 있다.


🟡<script async>를 사용할 경우
html 문서의 시작 -> script 파일을 동시에 다운로드/실행 -? <body>에 있는 HTML 태그를 실행 -> 끝
    
    -script 파일이 여러개 있을 경우 먼저 다운로드된 script 파일을 먼저 실행하게 된다.
    -script 파일이 서로 연관성이 있을 경우 하나의 스크립트만 실행 후 문제가 발생 할 수 있다.

🟡<script defer>를 사용하는 경우
🔴script 파일이 되게 많아질 시 지향🔴

html 문서의 시작 -> script 파일을 동시에 다운로드/실행 -? <body>에 있는 HTML 태그를 실행 -> 끝

    -HTML시작되고 script 파일을 동시에 다운로드/실행을 진행함 
    -script실행은 페이지 구성이 모두 끝날때 까지 지연
    -script순서에 따라 실행 


✔ CSS,JavaScript가 반영되지 않을 경우(캐시가 남아 있을 경우)
1.f12키를 누르고 새로고침 버튼을 누르고 있는 상태에서 강력새로고침을 선택
2. Ctrl+Shift+R 

🟡 주석
//: 한줄 주석
/* ~~ */: 여러줄 주석


🟢변수
- 데이터를 저장할 수 있는 메모리 공간
- 값이 변경 될 수 있음
- 자바스크립트의 변수는 타입이 없음
- let 키워드를 사용하여 변수를 선언🔴


크게 2가지로 선언
1. var
- 유연한 변수 선언 방식
- 지역변수, 전역변수와의 구별이 없음
- 같은 이름의 변수를 선언할 수 있음

    [예시]
    console.log(num);
    var num = 10;
    
    {
        console.log(num);   // 전역변수 num = 10
        var num = 20;       // 지역변수 num = 20
    }
    console.log(num)        // 전역변수가 20으로 바껴있음​



2. let
- 지역변수, 전역변수의 구별이 확실
- 같은 이름의 변수를 선언X

    [예시]
    let 변수명 = 값;
    
    또는

    let 변수명;
    변수명 = 값;

🟢상수(constant)

- 한번 선언된 상수는 다시 재정의 할 수 없음
- 값을 재할당 할 수 없음

    [사용법]
    const 상수명 = 값;
    
 🔴const 상수명;  <---- 사용불가 
    상수명 = 값; 


✔ 자바스크립트에서 상수를 권장하는 이유
    - 해킹을 방지하기 위해
    - 개발자 실수를 방지하기 위해

 


🟢 데이터타입(Data Type)
- 프로그램에서 다룰 수 있는 값의 종류
- 자바스크립트는 선언시 타입을 정하지 않기 때문에 많은 문제가 발생할 수 있음
- 자바스크립트의 타입 유연성을 해결하기위해 타입스크리트가 탄생

1. 숫자형(number)
- 정수와 실수를 따로 구분하지 않음
- 모든 수를 실수 하나로만 표현

2. 문자형(string)
- '' or "" or `` 로 둘러싸인 문자의 집합

    num = 10;
    '입력한 숫자는' + num + '입니다';

    `입력한 숫자는 ${num} 입니다.`;  <--- f스트링과 같은 기능

3. 논리형(boolean)
- 참과 거짓으로 표현되는 값

- false,0,'',"",null,undefined는 fasle로 판별

- false가 아닌 모든 값은 true로 판별

- 자바에선 모두 소문자


4.undefined, null
- underfined: 타입이 정해지지 않은 타입을 의미(변수 선언 후 값이 정해지지 않은 경우)

    [예시]
    let num;
    console.log(num);   // undefined

-null: null을 저장한 값(값이 없는 것)
    
    let obj = null;
    console.log(obj);   // null


5.심볼형(symbol)
- 유일하고 변경 불가능한 기본값을 만듬
- 객체 속성의 key로 사용법

    [사용법]
    const sym1 = Symbol('Apple');
    const sym2 = Symbol('Apple');
    
    console.log(sym1 == sym2);      // 값이 같은지 비교를 하면 Fasle
    왜? 주소 값이 같이 비교되는데 다르기때문
    console.log(sym1 == sym2);      //데이터 타입과 값이 같은지 비교​


6. 객체형(object)
- 어떤 속성을 하나의 변수로 저장할 수 있게 해주는 집합
- key value pair 구조로 저장
 
    [예시]
    const user = {userid:'apple, name:'김사과',age:20}
                 --------------------------------------
                   key     value

✔자바스크립트의 변수는 타입이 고정되어 있지 않으며 같은 변수에 다른 타입의 값을 대입 가능(파이썬과 같은 기능)

    [예시]
    let user = {userid:'apple', name:'김사과',age:20}
    user ='김사과' 
    가능!

 


🟢 자동 타입 변환

- 특정 타입의 값이 기대하는 곳에 다른 타입의 값이 오면 자동으로 타입을 변환해서 사용
    [예시]

        let num4 = 10;
        let str3 = '10';
        console.log(num4+str3);        //결과 1010
        console.log(num4-str3);         //결과 0    (숫자로 예상할 수 있는 값이 있다면 자동형변환)
        console.log(num4*str3);         //결과 100  (자동 형 변환)
        console.log(num4/str3);         //결과 1    (자동 형 변환)​

- NaN(Not a Number)
- 정의 되지 않은 값이나 표현할 수 없는 값이라는 의미
- 숫자로 변환할 수 없는 연산을 시도

    [예시]
    const char ='삼십';
    result = char - 10;     // result의 값은 NaN


🟢 타입변환 함수
-강제로 타입을 변환할 수 있음
    Number(): 문자나 숫자로 변환
    String(): 숫자나 블린등을 문자형으로 변환
    Boolean(): 문자나 숫자 등을 불린형으로 변환
    Object() : 모든 자료형을 객체형으로 변환
    parseInt(): 문자를 int형으로 변환
    parseFloat(): 문자를 float형으로 변환

 

 

 


🟢 자바스크립트의 대화상자
Web API : 브라우저에서 제공하는 API(Application Programming Interface)
- 프로그램들과 기능들의 상호 통신 방법을 규정하고 도와주는 매개체 

🔴 기본문법이 아니다 / 브라우저에서만 작동한다 !

    alert(): 사용자에게 메세지를 보여주고 확인을 기다린다.

    confirm(): 사용자에게 메세지를 보여주고 확인이나 취소를 누르면 그 결과를 boolen값으로 반환

    prompt() : 사용자에게 메세지를 보여주고 사용자가 입력한 문자열을 반환

 



✔extension 설치
문법이나 자동완성을 도와주는 Javascript(es6) 설치

✔단축키 자동 완성 만들기
f1 -> snippets -> 코드 조각: 사용자 코드 조각 구성 -> 새 조각 만들기 ->global-snippets -> 

{
"Console log":{
"prefix": "cl",             <-- 무슨 단어를 치면 검색되게 할지
"body": "console.log($1)"   <-- 실행시 어떤 문장이 나오게 할지 ($1는 cursor 위치)
}
}



✔ 트랜스 컴파일러 (trans - complier)
- 과거 브라우저 및 특정 브라우저 버전등을 모두 사용할 수 있도록 해석해주는 라이브러리

- BABEL을 설치하면 해결 가능 

728x90