> For the complete documentation index, see [llms.txt](https://heunnajo.gitbook.io/zerocho-javascript/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://heunnajo.gitbook.io/zerocho-javascript/master.md).

# 1장

**자바스크립트 프로그래밍**

1. 프로그래밍이란 컴퓨터에게 명령하는 것이라고 할 수 있다.
2. 자바스크립트란 웹 어플리케이션을 만들기 위해 사용된다.(모바일 앱을 만들 땐 자바나 스위프트 같은 언어를 사용한다.)
3. 값
4. 변수
5. 연산자
6. 조건문 & 반복문
7. 구구단/테트리스 만들기. Ex) 1 X 5 = ? 땡 또는 딩동댕

구구단을 만들기 위한 구성요소.

**값 : 숫자, 문자, 참/거짓(불린)**

Chrome console 창에 타이핑하는 것을 그대로 출력하는 것을 "Read Evaluate Print Loop" 이라고 한다. 입력한 값을 평가해서 값을 돌려준다.

데이터 타입에 대해 유의할 점!

"true" = 문자열, true = boolean 형

"1" = 문자열, 1 = 숫자

**연산자**

\+ - \* / %, 부등호, =, ==, ===

연산자 우선순위 : =이 제일 낮다. (제일 마지막에 실행된다.)

소괄호를 쓰면 연산자 우선순위를 바꿀 수 있다.

```javascript
var value = 1 + 2 * 3 > 6;
//결과는 true.
//1. 사칙연산
//2. 부등호 연산
//3. 대입 연산
```

```javascript
'str2' + 5
//결과는 'str25'
//5가 문자열로 취급되어 나온다.
```

String(5) = 5, Number('5') 를 이용하여 'str2' + String(5) = 'str25' 로 사용하자.

비교할 땐 ===와 !== 쓰도록 한다. 예외) NaN === NaN : false.

ex) 5 === 5 (true) <-> 5 !== 5 (false), 5 !== 6 (true) <-> 5 === 6 (false)

**변수**

변수명에는 $와 \_를 제외한 특수문자는 안 된다. 또한, 숫자는 첫 글자로 쓸 수 없다.

**null과 undefined**

undefined 대신 null을 쓰는 게 좋다. 값을 지정하지 않은 경우, 컴퓨터에서 일종의 default 값으로 undefined가 되고, null인 경우 필요에 의해 사람이 직접 값을 지정해준 것이다.&#x20;

**조건문(if)**

```javascript
var result = prompt('answer?')
if(3 * 8 === Number(result)) {
    'Dindondaeng'
} else {
    'Ddaeng'
}   
```

**반복문**

while과 for문이 있다.

**while(조건) { 실행문}, for(처음; 조건; 끝) {실행문}**

**함수**

반복을 최소화하기 위해 함수를 사용한다.

\*\* : 제곱 연산자.  ex)3 \*\* 3 = 3\*3\*3.&#x20;

**문자열 심화**

```javascript
'function'[2] // 'n'
'function'[0] // 'f'
var str = 'function'
//str.length = 8;
```
