1강 — 기초 문법
2024 DTC
| → / Space | 다음으로 |
| ← | 이전으로 |
| ↓ / ↑ | 같은 주제 안에서 단계 이동 |
| O | 전체 슬라이드 한눈에 보기 |
| F | 전체화면 |
아래쪽 화살표가 보이면 그 주제는 단계별로 이어집니다
브라우저에서 F12 → Console
오늘 나오는 코드는 전부 여기에 바로 쳐볼 수 있습니다
웹 프로젝트의 두뇌
HTML은 뼈대, CSS는 피부, JavaScript는 움직임
진입점이 없고 class 문법이 선택적이라
처음 배우기 가장 좋은 프로그래밍 언어
(부장 피셜)
값에 이름을 붙여 담아두려면
변수선언키워드 변수이름 = 변숫값
var
let
const
var name = '변수1';
let name = '변수2';
const name = '변수3';
| const | 한 번 정하면 못 바꿈. 기본으로 이걸 쓴다 |
| let | 나중에 바꿔야 할 때만 |
| var | 옛날 방식. 새로 쓰지 않는다 |
const a = 1;
a = 2;
자주 쓰는 타입
number, boolean, BigInt, string, object, undefined
typeof 1;
typeof 0.7;
typeof "문자열";
typeof true;
typeof { K: 'V' };
typeof variable;
typeof 1'number'typeof 0.7'number'typeof "문자열"'string'typeof true'boolean'typeof { K: 'V' }'object'typeof variable'undefined'const를 기본으로, 바꿔야 하면 letnumbertypeof두 값을 견주어 보려면
수학에서는
=, <, >, ≤, ≥, ≠
JavaScript에서는
==, <, >, <=, >=, !=
let result1 = 10 > 7;
let result2 = 10 < 7;
let result3 = 10 == 7;
let result4 = 10 != 7;
let result5 = 10 >= 7;
let result6 = 10 <= 7;
10 > 7true10 < 7false10 == 7false10 != 7true10 >= 7true10 <= 7false여기서 등호를 하나 더 붙이면?
let result1 = 1 == true;
let result2 = 3 == "3";
1 == truetrue3 == "3"true
let result1 = 1 === true;
let result2 = 3 === "3";
1 === truefalse3 === "3"false== — 타입을 맞춰서 비교. 예상 밖의 결과가 나온다=== — 타입까지 같아야 참=== 만 쓴다논리 연산자
&&, ||, !
false && false;
false && true;
true && false;
true && true;
false && falsefalsefalse && truefalsetrue && falsefalsetrue && truetrue
false || false;
false || true;
true || false;
true || true;
false || falsefalsefalse || truetruetrue || falsetruetrue || truetrue
!false;
!true;
!falsetrue!truefalse&& — 둘 다 참이어야 참|| — 하나만 참이어도 참! — 뒤집기값을 계산하려면
자주 쓰는 계산
+, -, *, /, %
let a = 10;
a = 5 + 7;
a = a + 5;
let a = 1010a = 5 + 712a = a + 517
let a = 10;
a = 5 + 7;
a += 5; // a = a + 5 와 같다
a17
let a = 1, b = 2, c = 3, d = 4;
a += 3;
b -= 5;
c *= 3;
d /= 2;
a4b-3c9d2
let a = 1;
a++; // 값을 돌려준 뒤에 1 증가
a;
++a; // 1 증가시킨 뒤에 값을 돌려줌
a;
a++1a2++a3a3++를 앞에 붙이면 뭐가 달라질까요?
let a = 5;
a--;
a;
--a;
a;
a--5a4--a3a3Math
수학 계산을 모아둔 도구 상자
number 타입에만 쓸 수 있다 (BigInt 불가)
Math.E; // 자연상수, 약 2.718
Math.LN2; // 2의 자연로그, 약 0.693
Math.LN10; // 10의 자연로그, 약 2.303
Math.LOG2E; // 밑이 2인 로그 E, 약 1.443
Math.LOG10E; // 밑이 10인 로그 E, 약 0.434
Math.PI; // 원주율, 약 3.1415
Math.SQRT1_2; // 1/2의 제곱근, 약 0.707
Math.SQRT2; // 2의 제곱근, 약 1.414
Math.abs(x); // 절댓값
Math.floor(x); // 소수점 내림 (작은 쪽으로)
Math.ceil(x); // 소수점 올림 (큰 쪽으로)
Math.trunc(x); // 소수점 버림 (0 쪽으로)
Math.round(x); // 반올림
Math.max(x, y); // 가장 큰 값
Math.min(x, y); // 가장 작은 값
Math.pow(x, y); // x의 y제곱
Math.sqrt(x); // 제곱근
Math.cbrt(x); // 세제곱근
Math.random(); // 0 이상 1 미만의 난수
Math.floor(-1.5);
Math.trunc(-1.5);
Math.floor(1.5);
Math.trunc(1.5);
Math.floor(-1.5)-2Math.trunc(-1.5)-1Math.floor(1.5)1Math.trunc(1.5)1+= -= *= /= — 자기 자신을 계산해서 다시 담기++ -- — 1씩 증가/감소Math — 수학 계산 도구 상자값 여러 개를 순서대로 묶으려면
let fruits = ['사과', '바나나', '포도'];
let fruits = ['사과', '바나나', '포도'];
fruits[0];
fruits[1];
fruits[2];
fruits[3];
fruits[0]'사과'fruits[1]'바나나'fruits[2]'포도'fruits[3]undefined
let fruits = ['사과', '바나나', '포도'];
fruits.length;
fruits.push('딸기');
fruits.length;
fruits.length3fruits.push('딸기')4fruits.length4[ ] — 값을 순서대로 묶는다length 개수, push() 뒤에 추가값에 이름표를 붙여 묶으려면
let obj = { Key: 'Value' };
obj.Key;
obj.Key'Value'
let teacher = {
정보: '윤경t',
한국사: '영은t',
};
teacher.정보;
teacher.한국사;
let teacher = {
정보: '윤경t',
한국사: '영은t',
};
teacher.정보'윤경t'teacher.한국사'영은t'fruits[0]
teacher.정보
{ } — 이름표를 붙여 값을 묶는다객체.이름 으로 꺼낸다조건에 따라 갈라지려면
if (조건) // 조건이 true일 때 실행할 코드
if (true) console.log("arg is true");
if (false) console.log("arg is not true");
if (true)
console.log("message1");
console.log("message2");
중괄호가 없는데 message2도 찍힐까요?
if (false)
console.log("message1");
console.log("message2");
if (true) {
console.log("message1");
console.log("message2");
}
let a = 1;
if (a == 0) {
console.log("message0");
}
if (a == 1) {
console.log("message1");
}
let a = 1;
if (a == 0) {
console.log("message0");
} else if (a == 1) {
console.log("message1");
}
let a = 0;
if (a == 0) {
console.log("message0");
} else if (a == 1) {
console.log("message1");
}
let a = 5;
if (a == 0) {
console.log("message0");
} else {
console.log("아무것도 안 맞음");
}
let a = 1;
if (a == true) {
console.log("if문 실행됨");
}
else if — 앞이 맞으면 뒤는 안 본다else — 다 아니면 여기한 값을 여러 경우와 맞춰보려면
let a = 1;
switch (a) {
case 0:
console.log(0);
case 1:
console.log(1);
case 2:
console.log(2);
default:
console.log("일치하는 값이 없음");
}
a가 1이면 뭐가 찍힐까요?
switch (a) { // a === 1
case 0:
console.log(0);
case 1:
console.log(1);
case 2:
console.log(2);
default:
console.log("일치하는 값이 없음");
}
switch (a) { // a === 1
case 0:
console.log(0);
break;
case 1:
console.log(1);
break;
case 2:
console.log(2);
break;
default:
console.log("일치하는 값이 없음");
}
case부터 아래로 계속 실행된다break를 꼭 붙인다default — 아무것도 안 맞을 때정해진 횟수만큼 반복하려면
for (변수 선언; 조건; 증감) { }
for (let i = 0; i < 10; i++) {
console.log(`${i}번`);
}
const fruits = ['사과', '바나나', '포도'];
for (let i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
for (let i = 0; i < N; i++) — N번 반복${ }조건이 참인 동안 반복하려면
while (조건) { }
while (true) {
console.log("실행");
}
while (false) {
console.log("실행");
}
let i = 0;
while (i < 3) {
console.log(i);
i++;
}
do {
console.log("실행됨");
} while (false);
검사하고 실행
0번 실행될 수 있음실행하고 검사
최소 1번은 실행반복 도중에 끼어들려면
for (let i = 0; i < 10; i++) {
if (i == 6) break;
console.log(i);
}
for (let i = 0; i < 10; i++) {
if (i == 6) continue;
console.log(i);
}
break — 반복문을 완전히 빠져나온다continue — 이번 회차만 건너뛰고 계속한다코드를 묶어서 재사용하려면
function add(a, b) {
return a + b;
}
add(1, 2);
add(10, 20);
add(1, 2)3add(10, 20)30
function 함수이름(인자) {
// 함수 내용
}
function 함수이름(인자) {
// 함수 내용
}
hello(); // 선언보다 위에서 불렀는데
function hello() {
console.log("안녕");
}
const 함수이름 = function (인자) {
// 함수 내용
}
function 을 값처럼 변수에 담는 방식
hello(); // 아직 만들어지기 전
const hello = function () {
console.log("안녕");
}
const 함수이름 = (인자) => {
// 함수 내용
}
화살표 함수 — 요즘 가장 많이 쓰는 형태
const 함수이름 = (인자) => {
// 함수 내용
}
const add = (a, b) => a + b;
add(1, 2);
add(1, 2)3| function 이름() | 기본형. 선언 위에서도 호출 가능 |
| const 이름 = function | 값처럼 담는다. 선언 위에서 호출 불가 |
| const 이름 = () => | 짧다. this를 바깥에서 가져온다 |
오늘 배운 것
| const / let | 값에 이름 붙이기 |
| === !== | 타입까지 따지는 비교 |
| + - * / % | 계산, Math 도구 상자 |
| [ ] | 배열 — 순서로 꺼낸다 (0부터) |
| { } | 객체 — 이름으로 꺼낸다 |
| if / else if / else | 갈라지기 |
| switch / break | 여러 경우와 맞추기 |
| for / while | 반복하기 |
| break / continue | 반복 도중 끼어들기 |
| function / => | 묶어서 재사용하기 |
콘솔에 직접 쳐봅시다
% 활용)오늘 배운 것만으로 전부 풀 수 있습니다
2강에서는 class, 비동기, DOM 조작