생활코딩 WEB2 - JavaScript 01 ~ 05

2021. 10. 5. 14:11스터디/Coding

Html과 css로는 정적인 문서밖에 할 수 없다. 그냥 정보만 올리기에는 이걸로 충분하지만 웹페이지와 상호작용하기 위해서는 추가적인 언어가 필요하다. 바로 javascript.

 

<script> Javascript의 영역 시작태그

<style>은 <head>에 들어가지만 <script>는 <body>에 들어간다.

 

<head>
     <style>
     ....
<body>
     <script>
         document. write(1+1);  <!-- 1+1이 연산되어 출력 -->
     </script>
     <h1>html</h1>
     1+1                             <!--그대로 1+1로 출력 -->
</body>

 

<input type="button"> 버튼을 만드는 태그
<input type="button" value="버튼에 넣는 글씨" onclick="alert('hi')">
<input type="text" onchange="alert('changed')"

/*
이벤트
 - onclick
 - alert 경고창을 여는 속성
*/

 

event 속성

자바스크립트는 상호작용가능한 많이 쓰이는 속성을 10~20개 정도를 정해둔다.

버튼 인풋을 넣을 때는 <script>안에 넣지 않음.

<input>은 별도 개체.

 

console 기능

콘솔을 사용하면 JS를 실행하기 위해서 파일을 하나 만들지 않고 웹브라우저 창에서 즉석으로 JS를 사용할 수 있다.

JS를 이용해 간단한 연산적용으로 계산기처럼 사용할 수 도 있다.

 

예시1)

alert('~~글자수 셀 내용~~'.length)
<!--작은따옴표안에 들어가는 내용의 글자수를 셀 수 있는 식이다.-->

예시2)

생활코딩 이벤트 댓글단 사람의 갯수 세기

[F12] >> "elements" >> [ESC] 하면 콘솔나옴.

 

 

문자열과 숫자

숫자

- 산술연산자(사칙연산): + - * /

 

문자열 (string)

"넣고싶은 글"

'넣고싶은 글'

 

문자열의 글자가 몇개인지 알고 싶다면 properties를 이용한다.

"글자수 알고싶은 문자열".length

 

하지만 이런 기능들을 다 하나하나 알 수가 없으니 검색 ㄱㄱ

 

Methods에는 다양한 기능들이 있다.

**properties와 Methods는 무슨차이인가..?

 

 

변수와 대입연산자
> x=1;      x는 변수 / 1은 대입연산자
< 1
> y=1;
< 1
> x+y;
< 2

변수(variable)는 대입연산자에 의해서 값이 언제나 변할 수 있다.

하지만 1=2; 처럼 1이라는 값을 언제나 갖고 변하지않는 상수(constant)에는 값을 변하게 할 수 없다.

 

변수를 사용하는 방법

긴 글에서 이름을 바꾸기

엔터를 누르지않고 실행을 유보하려면 [shift] + [enter]

 

 

웹 브라우저의 제어(night/day 버튼 예제)

night 버튼을 클릭했을 때, 스타일 속성이 생기면서 배경 블랙, 텍스트색상 화이트로 변경.

<body /*css 속성을 어떻게 자바스크립트에 넣을까?*/>
<input type="button" value="night" onclick="document.querySeletor( 'body' );">

*query: 질의하다.

**bold처리된 부분은 JS영역이다.

<input type="button" value="night" onclick="
document.querySelector('body').style.backgroundColor = 'black';
document.querySelector('body').style.color = 'white'; 
">

*볼드 부분은 <body style="background-color:black;">와 같다.

 

 

Javascript의 프로그래밍언어는 무엇인가?(이론)

JS는 사용자와 상호작용하므로 시간의 순서에 따라서 작동되어야한다. 이는 HTML과 분류되는 큰 특징이다. 조건에 따라 작동을 다르게 배치하거나, 반복해서 어떠한 기능이 실행되도록 할 수 있다.

 

 

조건문 예고

토글 Toggle : 하나의 버튼에 여러기능

'night' / 'day'의 버튼을 두가지가 아닌 토글버튼으로 만들어보자.

 

사용되는 기능 if/boolean...

 

비교연산자(Comparison operrator)와 불리언(Boolean)
<h2>1===1</h2>
    <script>
      document.write(1===1);  /*값은 'true'다*/
    </script>

    <h2>===</h2>
    <h2>1===2</h2>
    <script>
      document.write(1===2); /*값은 'false'다 "==="는 비교연산자*/
    </script>

 

비교연산자는 좌항과 우항이 있다. 좌항과 우항을 합하여 어떠한 값을 낸다.

비교연산자 "="은 좌항과 우항의 관계에 따라 T/F의 값을 내는데 이 값이 불리언(boolean)이다.

 

<지금까지의 데이터타입>

1. 문자열 Str

2. 숫자 Number

3. 불리언 Boolean

 

 

17. 조건문의 활용

night와 day의 버튼을 하나로 하고 화면이 day상태일때 night상태의 버튼을 누르면 night상태의 화면과 day버튼으로 전환되는 토글 버튼을 만들자.

 

<input id="night_day" type="button" value="night" onclick="
      if (night) {
        document.querySelector('body').style.backgroundColor = 'rgb(30, 30, 35)';  /*조건을 개별일때와 같이*/
        document.querySelector('body').style.color = 'white';
        document.querySelector('a').style.color = 'white';
      } else {
        document.querySelector('body').style.backgroundColor = 'white';    /*조건을 개별일때와 같이*/
        document.querySelector('body').style.color = 'black';
        document.querySelector('a').style.color = 'black';
      } ">