본문 바로가기
교육/Javascript&Jquery

자바스크립트 + 제이쿼리 입문 day 1

by Renechoi 2022. 12. 19.

day1 

 

자바스크립트 + 제이쿼리 입문


 

자바스크립트는 ? 

웹을 풍부하게 만들어주는 작고 가벼운 언어다. 

 

특징)

1. 객체 기반의 언어

2. 인터프리터 언어로서 클라이언트의 웹 브라우저에 의해 해석되고 실행

* 여러 가지 명령들을 한 줄씩 처리함 

3. HTML 문서 내에 기술되고 HTML 문서와 함께 수행됨

4. HTML에 연산 제어 등 프로그래밍적인 요소를 추가하고 클라이언트의 자원을 활용 

 

모든 과정은 요청과 응답으로 이루어져 있다. 

 

요청 -> 응답 

 

HTML + CSS + JAVASCRIPT 라고 할 때 어디부터 어디까지가 script ? 

그 기준 : 사용자가 요청을 했느냐 안 했느냐.

그 요청에 따라 응답하는 것들을 JavaScript가 한다. 

 

e.g. 웹 사이트에서 마우스를 올렸을 때 색깔이 바뀌는 거 ? 

-> css에서 hover로 처리가 된다. 

-> css에서 할 수 있으면 script보다 css로 활용하는 것이 좋다. 

 

e.g. 

https://vntfilm.com/#close

http://oconnect.kr/

 

웹 페이지에서 채팅 버튼을 눌렀을 때 확대되는 느낌을 받으면서 나타나는 것들 : animation or transition 

꺼질 때는 바로 사라짐 

-> 이런 것들을 설정할 수 있다. 

 

 

객체지향이란?

 

객체지향 프로그래밍은 컴퓨터 프로그래밍 패러다임 중 하나로, 프로그래밍에서 필요한 데이터를 추상화하여 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 

 

e.g) 여러 부품들 -> 다양한 자동차 

여러 명령들 -> 명령들을 조합해서 여러 가지 기능을 구현함 

 

완성된 애들을 객체라고 한다. 

 

그렇다면 부품들은 객체가 아닐 것인가? 이거도 하나의 객체 -> 그것들도 뜯어보면 다른 더 미세한 부품들로 구성됨 

 

큰 명령들 뿐만 아니라 작은 명령들도 객체로 취급을 한다. 

 


 

브라우저가 갖고 있는 상태 값들을 가져와서 반영할 수 있다.

 

브라우저에는 여러 가지 기능이 있음

- 주소창

- 새로 고침

- 북마크

등등... 

 

요런 것들을 스크립트에서 활용할 수 있음 

 

e.g. 달력 같은 경우 form 태그에서 달력을 가져오는 경우 

 

이러한 곳들을 이용한 최종 목표는 ? 

DOM을 제어하는 것이다. 

documetn = html 문서 

 

즉 문서를 제어하게 되는 것이다. 

 

 

스크립트를 사용하는 방법 

인라인 방법 => 추천하지 않음 

 

css 처럼 script도 따른 문서로 작성하고 외부 파일로 분리하여 불러오는 방식으로 하는 것이 좋다. 

 

일반적인 언어의 값의 종류와 변수 

정수, 실수, 문자, 문자열

3, 5.55 'a' "hello"

 

숫자 : number

문자 : string 

 

var x = 'a';

여기서 = 은 대입연산자로서 'a'를 x에 대입한다는 뜻. 

x는 number 일까 string 일까? 

문자를 받았으니 string이다. 

 

자바스크립트에서는 이중 따옴표나 하나 따옴표나 모두 동일하게 취급한다. 

 

var x = "<div></div>";

변수에 담아서 사용하는 이유는 무엇일까?

 

여러 개를 쓴다고 하면 만약 변수를 사용하지 않고 쓰면 전부 다 수정해주어야 함.

하지만 변수를 쓰면 변수 한 번만 수정하면 되므로. 

 

=> 사용성이 좋아진다. 

 

 

var x;

-> undefined type 

 

var x = null;

-> null type

 


 

자바 스크립트 기초 문법 실습해보기 

 

 

 

 

브라우저의 최상위 객체 

= window

 

 

 

사용할 수 있는 함수들

 

 

 

 

이와 같은 코드를 실행하면 순서대로 실행된다. 

 

=> 이를 동기라고 함

 

순차적으로 시행되지 않으면 비동기. 

 

 

스크립트에서 변수 사용시 

var $strSelector

var str_selector 

 

를 사용한다. 하이픈 안 됨.

 

var _selector

앞에 오는 것도 가능.

 

 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <!-- 자바 스크립트 사용하는 기본적인 방식 -->
    <!-- <script src ="file.js" type="text/javascript"></script> -->

</head>

<body>
    <!-- basic.html-->


    <p>
    <h1>자바스크립트 문법 기초 공부하기</h1>

    console.log('1000'); <br>
    console.log(typeof '1000'); <br>
    console.log(typeof 1000); <br><br>

    console.log(1000 + 1000); // 2000 <br>
    console.log('1000' + '1000'); // 10001000 <br>
    console.log(1000 + '1000'); // 숫자 더하기 문자는 어떨까? 10001000 <br>

    <br>



    </p>

    <div class="str"> document 제어는 스크립트로 !! </div>

    <script>

        var strSelector = document.querySelector('.str');   // 같은 표현을 변수로 치환하기 

        strSelector.innerHTML = '문자변경';
        // document.querySelector('.str').className = 'change'; // 요소를 변경하였기 때문에 다음 문장에서 .str을 쓰고 있으므로 에러 발생
        // document.querySelector('#str').className = 'change'; 
        
        // document.querySelector('#str').className = 'change'; // 클래스가 아니라 id라면 #을 사용
    
        document.querySelector('.str')    
        // document는 현재 html 문서를 지칭
        // querySelector => div의 selector로서 선정하는 것 

        // 콘솔로 찍어보면 div가 나온다. 
        console.log(
            document.querySelector('.str')
        )

        // 이때 .innerHtml 등의 함수를 가져오는 것을 할 수 있음 
        console.log(
            document.querySelector('.str').innerHTML
        )
        // => 내용만 나온다. 

        
        console.log(
            document.querySelector('.str').innerHTML, 
            document.querySelector('.str').className, 
        )


        strSelector.className = 'change'; 


        // 기본적으로 js는 순차적인 order로 읽는다. 하지만 먼저 html을 전부 다 읽고 나서 script를 실행하게 할 수도 있음 
        


    </script>

    <script>
        console.log('1000');
        console.log(typeof '1000');
        console.log(typeof 1000);

        console.log(1000 + 1000);   // 2000
        console.log('1000' + '1000');   // 10001000
        console.log('2000' * '2000');   // 4000000 => 연산이 된다. 

        console.log(1000 + '1000');   // 숫자 더하기 문자는 어떨까? 10001000
        console.log(typeof (1000 + '1000'));   // string

        console.log(1000 - '1000');   // 0
        console.log(1000 * '1000');   // 10000000
        // => 더하기만 제외하고 문자와 숫자와 결합을 할 때 연산이 되도록 한다
        // 자동 형변환이 일어남 = 브라우저가 

        console.log(1000 * 'abc');   // Nan


    </script>


</body>

</html>
반응형