[React-Winterlood] 섹션 01. JavaScript 기본(1)
[한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지] https://www.inflearn.com/course/%ED%95%9C%EC%9E%85-%EB%A6%AC%EC%95%A1%ED%8A%B8
[React-Winterlood] 섹션 01. JavaScript 기본(1)
1.2 VsCode 설치하기
- 익스텐션에서 플러그인 설치
- ‘Prettier’: 설치 후 vscode 설정에서 ‘format on save’ 체크, formatter는 Prettier로 설정하면 저장하면서 자동으로 코드 정렬(불편해서 적용 안 함)
- ‘Material Icon Theme’: 아이콘을 더 직관적으로 만들어주는 테마(취향이 아니라 적용 안 함)
- ‘error elns’: 오류를 친절히 코드 바로 옆에서 알려준다(정신없어서 적용 안 함)
- ‘Live server’: 필수
1.4 변수와 상수
- 변수와 상수: 값을 저장
1. 변수
- let
- 선언: 변수에 값을 할당
- 초기화: 변수를 선언 하며 초깃값을 넣는 것
- 재할당 가능
- 재선언 불가능
2. 상수
- const
- 재할당 불가능
- 재선언 불가능
3. 변수 명명 규칙(네이밍 규칙)
$
,_
를 제외한 기호는 사용할 수 없다- 숫자로 시작할 수 없다
- 예약어를 사용할 수 없다.
4. 변수 명명 가이드
- 의미를 직관적으로 변수명을 지어준다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 1. 변수
// 변수 선언 및 초기화
let age = 26;
console.log(age);
// 변수 재할당
age = 30;
console.log(age);
// 변수 재선언
// let age = 27; <-- 불가능!
// 2. 상수
// 상수는 초기화 이후 재할당 불가능
const birth = "1997.01.06";
// birth = 27; <-- 불가능!
// 3. 변수 명명규칙(네이밍 규칙)
let $_name;
// let #name; <-- 1번 규칙 아웃
// let 2name; <-- 2번 규칙 아웃
// let if; <-- 3번 규칙 아웃
// 4. 변수 명명 가이드
let salesCount = 1;
let refundCount = 1;
let totalSalesCount = salesCount - refundCount;
1.5 자료형
- 자료형(DataType)
- 원시타입: Number, String, Boolean, Null, Undefined
- 객체타입
- Object: Array, Function, RegexExp
1. Number Type
- 정수, 실수, 음수 지원
- 양의 무한대, 음의 무한대 지원
- NaN 지원: Not a number
- 사칙 연산 및 % 연산자 지원
2. String Type
- 문자열은
""
혹은''
로 감싸기 - 덧셈 연산자 지원
- backtick으로 문자열 안에 변수의 값을 동적으로 조절 가능: 템플릿 리터럴 문법
3. Boolean Type
- 참/거짓
4. Null Type
- 값이 없는 것
5. Undefined Type
- Undefined라는 단 하나의 값만 포함하는 특수한 타입
- 초기화값 없이 선언하면 Undefined 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// 1. Number Type
let num1 = 27;
let num2 = 1.5;
let num3 = -20;
let inf = Infinity;
let mInf = -Infinity;
let nan = NaN;
// 2. String Type
let myName = "이정환";
let myLocation = "목동";
let introduce = myName + myLocation;
let introduceText = `${myName}은 ${myLocation}에 거주합니다`;
// 3. Boolean Type
let isSwitchOn = true;
let isEmpty = false;
// 4. Null Type
let empty = null;
// 5. Undefined Type
let none;
console.log(none); // Undefined 출력
1.6 형 변환
- 형 변환(Type Casting): 어떤 값의 타입을 다른 타입으로 변경하는 것
- 묵시적 형 변환(암묵적 형변환): 개발자의 설정 없이 자바스크립트 엔진이 형 변환
- 명시적 형 변환: 개발자가 직접 내장함수 등을 통해 형 변환
1. 묵시적 형 변환
- number와 string을 덧셈 연산할 경우 묵시적으로 number가 string으로 형 변환
2. 명시적 형 변환
- string을 number로 형 변환: 내장함수
Number()
이용 - 문자열이 포함된 string을 number로 형 변환: 내장함수
parseInt()
이용(숫자가 앞에 있어야 함) - number을 string로 형 변환: 내장함수
String()
이용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 1. 묵시적 형 변환
let num = 10;
let str = "20";
const result = num + str;
console.log(result); //1020 출력
// 2. 명시적 형 변환
let str1 = "10";
let strToNum1 = Number(str1);
let str2 = "10개";
let strToNum2 = parseInt(str2);
let num1 = 20;
let numToStr1 = String(num1);
console.log(numToStr1 + "입니다");
1.7 연산자 1
- 연산자(Operator): 프로그래밍에서의 다양한 연산을 위한 기호, 키워드
1. 대입 연산자
=
2. 산술 연산자
+
,-
,*
,/
,%
(모듈러 연산자)*
,/
,%
의 우선순위가+
,-
보다 높다
3. 복합 대입 연산자
+=
,-=
,*=
,/=
,%=
- 산술 연산자와 대입 연산자를 함께 사용
4. 증감 연산자
++
,--
- 1씩 증가하거나 감소
- 전위 연산: 증감 연산자를 변수 앞에 놓아 라인에서 바로 연산
- 후위 연산: 증감 연산자를 변수 뒤에 놓아 라인이 끝나야 연산
5. 논리 연산자
||
,&&
,!
6. 비교 연산자
- 동등 비교 연산자
===
(=을 두 번이 아닌 세번을 사용하면 자료형까지 비교) - 비동등 비교 연산자
!==
- 대소 비교 연산자
>
,<
,<=
,=>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// 1. 대입 연산자
let var1 = 1;
// 2. 산술 연산자
let num1 = 3 + 2;
let num2 = 3 - 2;
let num3 = 3 * 2;
let num4 = 3 / 2;
let num5 = 3 % 2;
let num6 = (1 + 2) * 10;
console.log(num6); // 30 출력
// 3. 복합 대입 연산자
let num7 = 10;
num7 += 20;
num7 -= 20;
num7 *= 20;
num7 /= 20;
num7 %= 10;
// 4. 증감 연산자
let num8 = 10;
++num8; // 전위 연산
num8++; // 후위 연산
// 5. 논리 연산자
let or = true || false;
let and = true && false;
let not = !true;
// 6. 비교 연산자
let comp1 = 1 === "1";
let comp2 = 1 !== 2;
let comp3 = 2 > 1;
let comp4 = 2 < 1;
let comp5 = 2 >= 2;
let comp6 = 2 <= 2;
1.8 연산자 2
1. null 병합 연산자
??
- 존재하는 값을 추려내는 기능
- null, undefined가 아닌 값을 찾아내는 연산자
2. typeof 연산자
typeof
- 값의 타입을 문자열로 반환하는 기능을 하는 연산자
3. 삼항 연산자
- 항을 3개 사용하는 연산자
- 조건식을 이용해서 참, 거짓일 때의 값을 다르게 반환
;
을 기준으로 첫 번째 항에는 조건식을, 두 번째 항에는 참일 때의 반환값을, 세 번째 항에는 거짓일 때의 반환값을 입력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// 1. null 병합 연산자
let var1;
let var2 = 10;
let var3 = 20;
let var4 = var1 ?? var2;
let var5 = var1 ?? var3;
let var6 = var3 ?? var2;
let userName;
let userNickName = "Winterlood";
let displayName = userName ?? userNickName;
// 2. typeof 연산자
let var7 = 1;
var7 = "hello";
var7 = true;
let t1 = typeof var7;
console.log(t1);
// 3. 삼항 연산자
let var8 = 10;
// 요구사항 : 변수 res에 var8의 값이 짝수 -> "짝", 홀수 -> "홀"
let res = var8 % 2 === 0 ? "짝" : "홀";
console.log(res); // 짝 출력
1.9 조건문
- 조건문: 특정 조건을 만족했을 때에만 실행되는 코드를 작성하기 위한 문법
- 대표적으로 if, switch 조건문
1. if 조건문 (if문)
if
키워드 + 소괄호 안에는 조건식 + 중괄호 안에는 조건을 만족하면 수행할 코드else if
,else
키워드: 순서대로 전 조건이 거짓일 때 수행
2. Switch 문
- if문과 기능 자체는 동일하나, 다수의 조건을 처리할 때 if보다 더 직관적
switch
키워드 + 소괄호 안에는 비교하고 싶은 변수 ⟶case
안의 값과 비교- 일치되는
case
를 찾은 경우 멈추고 싶다면break;
case
값이 없다면 실행될default
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// 1. if 조건문 (if문)
let num = 4;
if (num >= 10) {
console.log("num은 10 이상입니다");
console.log("조건이 참 입니다!");
} else if (num >= 5) {
console.log("num은 5 이상입니다");
} else if (num >= 3) {
console.log("num은 3 이상입니다");
} else {
console.log("조건이 거짓입니다!");
}
// 2. Switch 문
let animal = "owl";
switch (animal) {
case "cat": {
console.log("고양이");
break;
}
case "dog": {
console.log("강아지");
break;
}
case "bear": {
console.log("곰");
break;
}
case "snake": {
console.log("뱀");
break;
}
case "tiger": {
console.log("호랑이");
break;
}
default: {
console.log("그런 동물은 전 모릅니다");
}
}
This post is licensed under CC BY 4.0 by the author.