Smarteer Suppoters/Study

[국비지원무료교육] 자바스크립트 무작정 따라하기 (Iot 과정, 스마트인재개발원)

제쿵 2022. 1. 26. 10:05
자바 스크립트 처음 배운날..

 

자바스크립트(JavaScript)는 객체(object) 기반의 스크립트 언어이다.

웹의 동작을 구현할 수 있다.

목차

  1. 무작정 따라하기
  2. 입력문
  3. 출력문
  4. 변수
  5. 자료형
  6. 연산자
  7. 형변환
  8. 조건문

1. 무작정 따라하기

<!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>
</head>
<body>

    <a href="#">자바스크립트 무작정 따라하기!!!!!!!!!!!!</a>
    <br><br>
    <button id="btn1">디자인바꾸기 짠!</button>&nbsp&nbsp<button id="btn2">되돌리기 짠!</button>
    <br>
    <ul>
        <li>HTML</li>
        <li>CSS</li>
        <li>JS</li>
    </ul>
    <h1>오늘은 1/26</h1>
    <p>즐거운 JavaScript 수업입니닷!</p>

</body>
</html>

 

선생님이 주신 실습코드이다!

 

실행하면 이렇게 나온다.

a태그로 "#" 링크로 연결 해놓았다. 클릭 시 아무일도 일어나지않는다.

button 태그를 이용해서 버튼 2개 생성하고 아이디를 붙여놓았다.

 

<script>
        document.querySelector("#btn1").addEventListener("click", function(){
            document.querySelector("body").style.backgroundColor = "black";
            document.querySelector("body").style.color="white";
        })
        document.querySelector("#btn2").addEventListener("click", function(){
            document.querySelector("body").style.backgroundColor = "white";
            document.querySelector("body").style.color="black";
        })
</script>

body태그 안쪽에 <script>태그를 열고 닫아서 이렇게 작성했다.

일단 아무것도 모르고 따라 썼다..

 

document             - 현재 html문서, body 안쪽이라고 생각하면 편하다고 설명해주셨다.
querySelector()      - 선택자를 지정하는 것 같다.
addEventListener() - 선택한 영역에 이벤트 발생할때까지 기다리다가 발생하면 실행한다.

function(){}           - 함수이다

 

작성하고 버튼을 눌러보면,

 

디자인바꾸기 짠!

 

되돌리기 짠!

화면이 바뀌는 것을 확인할 수 있다.

 

전체코드

더보기
<!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>
</head>
<body>
    <a href="#">자바스크립트 무작정 따라하기!!!!!!!!!!!!</a>
    <br><br>
    <button id="btn1">디자인바꾸기 짠!</button>&nbsp&nbsp<button id="btn2">되돌리기 짠!</button>
    <br>

    <ul>
        <li>HTML</li>
        <li>CSS</li>
        <li>JS</li>
    </ul>

    <h1>오늘은 1/26</h1>

    <p>즐거운 JavaScript 수업입니닷!</p>

    <script>
        documen.querySelector("#btn1").addEventListener("click", function(){
            document.querySelector("body").style.backgroundColor = "black";
            document.querySelector("body").style.color="white";
        })
        document.querySelector("#btn2").addEventListener("click", function(){
            document.querySelector("body").style.backgroundColor = "white";
            document.querySelector("body").style.color="black";
        })

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

 

 

 

 

자바 스크립트는 인터프리터(Interpreter) 언어 이다.

 

 

컴파일 (compile) - 파일 전체를 읽어 코드의 의미를 해석하고 기계어로 변환하는 것

 

인터프리팅 (interpreting) - 코드를 한줄 한줄 읽어 한줄 씩 bytecode로 변환하는 과정을 거침

 

그래서 코드를 작성하는 동안에는 어떤 오류가 났는지 확인 할 수 없다.

잘못되어도 실행이 된다..

스크립트를 작성했는데 반응이없다면

F12 -> console 창 확인

 

무엇이 잘못 작성되었는지 확인 할 수가 있다.

 

documen.querySelector("#btn1").addEventListener("click", function(){

document에서 t를 빼먹었을때 Issue

 

 

 

 

2. 입력문

 

document.write( )

 

document : 현재 HTML문서(body 부분) 주소창 밑으로 보이는 부분

<script>
        document.write("<strong>아자아자 화이팅!!</strong><br>으라차차!!")
</script>

( ) :  " " 또는 ' ' 안 쪽에 보이고 싶은 html언어를 작성하면 화면에 그대로 출력이 된다!

자바 스크립트에서는 " " 가 쓰이는 자리에는 ' ' 도 사용할 수 있다.

편한 방식으로 사용하라고 하셨다.

위 코드는 이렇게 표시된다.

 


console.log( )

 

콘솔을 통해 출력하는 방법은 여러가지가 있다.

 

    <script>
        console.log("log")

        console.info("info")

        console.warn("warn")

        console.error("error")
    </script>

이렇게 코드를 작성한다면..

 

f12 -> console 탭에서 이렇게 표시된다.

크롬에서는 log, info가 보이기에 구분이 없지만

브라우저에 따라 다르게 나올 수 있다고 한다.

 

console창에 출력하는 것은 일반 사용자들에게 보이는 부분은 아니다.

개발 중에 사용하거나 서버랑 통신이 잘되는지 확인할 때 쓰인다고 하셨다.


alert( )

 

알림 팝업창을 띄운다.

원래는 Window.alert( ) 인데

자바에서 object클래스가 최상위 클래스인 것처럼

자바 스크립트에서는 Window가 최상위객체라서 생략 가능하다고 하셨다.

<script>
        alert("제쿵")
</script>

이렇게 표시된다.

 

 

3. 출력문

 

prompt( )

 

prompt("출력내용","입력내용")으로 쓰인다.

두번째 인자 입력내용은 옵션이다.

 

    <script>
        var lunch = prompt("오늘 기분은 어때??","좋아!!")
        console.log(lunch)
    </script>

입력내용까지 설정하면 기본적으로 문자열이 들어가있다.

리턴타입은 String,

입력받은 문자열을 반환한다.

 


confirm( )

 

confirm("출력문작성")

리턴타입 boolean

    <script>
        var choice = confirm("올 때 메로나")
        console.log(choice)
    </script>

취소를 눌렀다.

확인을 누른 경우 출력값은 true가 된다.

 

 

prompt와 confirm의 리턴값을

var 변수명 에 받아왔다.

 

여기서 var란..

변수에서 설명해주셨다.

 

4. 변수

 

앞서 배운 Java에서는 자료형을 컴파일 시 결정했다.

 

Java는 정적 타입의 언어이다.

자료형을 컴파일 시 결정하고

자료형에 맞지 않은 값이 들어있다면 컴파일 에러가 발생한다.

int age = "김철수";

이경우 컴파일 에러가 발생한다.

 

반면에

Javascript는 동적 타입의 언어이다.

자료형을 런타임 시 결정하고

 <script>
        var age = "20"
 </script>

실행 도중 변수에 예상치 못한 타입의 값이

들어오면 Type Error가 발생한다.

 

변수 선언에는 3가지 방법

var, let, const 가 있다.


var

변수 재선언 가능

변수 재할당 가능

<script>
        var aValue = 1
        var aValue = 2;
        console.log(aValue)
</script>

같은 이름으로 재선언, 재할당이 가능하다.

 


let

변수 재선언 불가

변수 재할당 가능

<script>
        let bValue = 1
        let bValue = 2
        console.log(bValue)
</script>

재선언하면 에러가 난다. 콘솔창에 확인가능하다.

이미 선언되어있다고 한다 -> 변수 재선언 불가

 


const

변수 재선언 불가

변수 재할당 불가

<script>
        const cValue = 1
        const cValue = 2
        console.log(cValue)
</script>

 

실습문제!

문제를 하나 내주셨다.

1. 이름 입력받기

2. 이름으로 문구 출력하기

<script>
        var name = prompt("이름을 입력하세요.")
        console.log("어서오세요!\n"+name+"님, 환영합니다.")
        document.write("어서오세요!<br>"+name+"님, 환영합니다.")
</script>

콘솔창에도 마찬가지로 출력된다.

 

 

5. 자료형

 

number    :  정수, 실수 등 산술 연산이 가능한 자료형

string       :  문자열로 이루어진 자료형

boolean    :  참/거짓으로 표현되는 논리 형태의 자료형

undefined :  값이 할당된 적이 없거나 존재하지 않는 속성일 때의 유형

null          :  아무런 값을 나타내지 않을 때의 자료형

 

undefined과 null 자료형을 자세히 설명해주셨다.

예를 들어

var a

a 라는 공간만 만들어주고 값이 할당되지 않았을 때

undefined 값을 가진다.

 

메모리 공간을 싹 비우고 싶다면

var a = null

null을 이용하면된다.

 

타입확인하려면 typeof 연산자를 사용한다.

console.log(typeof 22)

변수의 데이터 타입을 문자열로 반환한다.

console.log(typeof undefined) -> undefined

console.log(typeof null) -> object

 

 

6. 연산자

 

동등연산자( == )와 일치연산자( === )가 있다.

 

동등연산자( == )

자동으로 자료형 변환 후 비교한다.

10 == '10' 의 경우 자료형이 다르지만

자동으로 자료형은 변환 후 비교하기 때문에 true 값을 반환한다.

 

일치연산자는( === )

타입 변환을 하지 않고 정확히 값을 자료형을 비교한다.

10 === '10' 의 경우 자료형이 다르기 때문에 false 값을 반환한다.

 

 

피연산자가 boolean 일 경우

true는 1로

false는 0으로 변환한다.

1 == true -> true

null == undefined -> true

 


 

실습문제를 내주셨다.

변수 값이 456이라면 400이 되고

111이라면 100이 되는 코드 작성

<script>
        let num = 312
        console.log(num-(num%100))
        console.log(parseInt(num/100)*100)
</script>

console.log(num-(num%100))

312 - (321%100) = 300

원래값에서 100으로 나눈 나머지를 빼준다.

 

console.log(parseInt(num/100)*100)

형변환을 이용하는 방법이 있다.

parseInt( )는 정수값을 반환하기 때문에

소수점 아래는 모두 버린다.

parseInt()가 없다면 출력값은 312가 된다.

 

 

parseInt(num/100) = 3
num/100 = 3.12

 

7.형변환

이 코드를 실행시키면..

 <script>
        var age = prompt("나이 입력해주세요")
        alert("20년뒤의 나이는 "+(age+20))
 </script>

나이가 정확히 출력되지않는다.

prompt( ) 함수가 문자열을 반환하기 때문이다.

형변환이 필요하다.

 

    <script>
        // var age = prompt("나이 입력해주세요")
        // alert("20년뒤의 나이는 "+(age+20))
        
        var age = Number(prompt("나이 입력해주세요"))
        alert("20년뒤의 나이는 "+((age)+20))

        var age = parseInt(prompt("나이 입력해주세요"))
        alert("20년뒤의 나이는 "+(age+20))
    </script>

 

 

parseInt( )와 Number( )를 사용할 수 있는데

두 경우 모두 정상적으로 출력된다.

형변환 parseInt( )와 Number( )

모두 인자로 문자열을 받으면 숫자를 반환해준다.

 


위 코드에선 문제가 없었지만..

 

두가지 형변환에는 차이점이 있다.

 

parsInt( )
<script>
        var num1 = parseInt('500명'); 
        var num2 = parseInt('명 : 500'); 

        console.log(num1)
        console.log(num2)
</script>

이렇게 출력된다.

숫자의 시작과 끝부분을 형변환하여 num1에 넣는다.

그 이후의 다른 자료형은 포함하지 않는다.

단, 숫자로 시작하지 않으면 뒤에 숫자가 있어도 NaN이 저장된다.

 

Number( )
<script>
        var num1 = Number('500명'); 
        var num2 = Number('명 : 500'); 

        console.log(num1)
        console.log(num2)
</script>

형변환 Number( )은 문자열에 숫자 이외의 자료형이 있으면

NaN을 반환한다.

 

차이점을 알아두면 좋을 것 같다.

 

parseFloat( )

문자열에서 숫자를 실수로 반환한다.

 

toString()
    <script>
        var num1 = (5).toString();
        var num2 = (5).toString(2);

        console.log(num1)
        console.log(num2)
    </script>

숫자를 문자열로 반환한다.

인자 값을 넣어주면 해당 값에 해당하는 진수로 반환한다.

5 = 101(2)

 

8. 조건문

 

 조건문은 자바에서 사용하던 것처럼 사용할 수 있다.

 <script>
        var j = Number(prompt("java 점수"))
        var p = Number(prompt("python 점수"))
        var r = Number(prompt("R 점수"))
        var avg = (j+p+r)/3
        var rank = null;
        if(avg>=90) rank = 'A'
        else if(avg>=80) rank = 'B'
        else if(avg>=70) rank = 'C'
        else rank = 'F'
        console.log("당신의 평균은 "+ avg.toFixed(2) + "이고 학점은 " + rank +"입니다.")
    </script>

.toFixed(값)은 소수 (값)번째 짜리까지 출력한다는 말이다.

 

 

 

 


 

https://www.smhrd.or.kr/

 

스마트인재개발원

4차산업혁명시대를 선도하는 빅데이터, 인공지능, 사물인터넷 전문 '0원' 취업연계교육기관

www.smhrd.or.kr