ํ ์ ํฌ๊ธฐ๋ก ์๋ผ ๋จน๋ ๋ฆฌ์กํธ ์น์ 2 - JavaScript ๊ธฐ๋ณธ

Prettier ๋ฅผ ์ค์นํ๊ณ ,

Ctrl + , ๋ฅผ ๋๋ฌ์ ์ค์ ์ ๋ค์ด๊ฐ ํ, format on save ๋ฅผ ํด์ค๋ค.
๊ฐ์์์ Shift + S๋ฅผ ๋๋ฅด๋ฉด ์ ๋ ฌ๋๋ค๊ตฌ ํ๋๋ฐ... ์ ์ฉ์ด ์๋์๋ค. ์น์ค์ ๋ฐฐ๋๊ป์ Default Formatter๋ฅผ Prettier๋ก ๋ฐ๊ฟ์ค์ผํ๋ค๊ณ ์๋ ค์ฃผ์
จ๋ค ... ๊ตฟ

Material Icon Theme ์ ์ค์นํ ํ, ์์ ํ์ผ ์์ด์ฝ ํ
๋ง ์ ํ์์ Material Icon Theme ์ ์ ํํด์ฃผ๋ฉด,
๋ ์์๊ฒ ๋ฐ๋ ์์ด์ฝ์ ๋ณผ ์ ์๋ค.

Error Lens ๋ฅผ ์ค์นํ๋ฉด
์๋ฌ์ ๋ํ ์ค๋ช ์ ํด์ฃผ๋ ์ค์ ์ด ๊ฐ๋ฅํ๋ค.

Live Server ๋ฅผ ์ค์นํด์ค ํ,

index.html ํ์ผ์์ Ctrl + Shift + P๋ฅผ ๋๋ฌ์ ์๋จ์ Live Server: Open with Live Server ๋ฅผ ์ ํํด์ฃผ๋ฉด,

๋ธ๋ผ์ฐ์ ์ ์ฐ๋ฆฌ๊ฐ ๋ง๋ index.html ํ์ผ์ ์ด ์๊ฐ ์๋ค.
let์ผ๋ก ๋ณ์๋ฅผ ์ ์ธํ๋ค.
์ค๋ณต ์ ์ธ์ ๋ถ๊ฐํ๋ค.

์์๋ ํ ๋ฒ ์ ์ธํ๋ฉด ๋ฐ๊ฟ ์ ์๋ ๊ฐ์ด๋ค. (Uncaught TypeError๊ฐ ๋ฌ๊ฒ์ ๋ณผ ์ ์๋ค. )

์์๋ ๋ฌด์กฐ๊ฑด ์ด๊ธฐํ๊ฐ ํ์ํ๋ค.

3.1. $, _ ์ ์ธํ ๊ธฐํธ๋ ์ฌ์ฉํ ์ ์๋ค.
3.2. ์ซ์๋ก ์์ํ ์ ์๋ค.
3.3. ์์ฝ์ด๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
ํ
ํ๋ฆญ ๋ฆฌํฐ๋ด ๋ฌธ๋ฒ : ๋ฐฑํฑ (``)
let introduceText = `${myName}์ ${myLocation}์ ๊ฑฐ์ฃผํฉ๋๋ค`;
True / False
"์๋ฌด๊ฒ๋ ์๋ค"
undefined ์๋ ๋ค๋ฅด๊ฒ ๊ฐ๋ฐ์๊ฐ ๋ช
์์ ์ผ๋ก '๊ฐ์ด ์๋ค!' ๋ฅผ ํ์ํ๋ ค๊ณ ํ ๋ ์ฌ์ฉํ๋ค.
let empty = null;
์ด๊ธฐํํ์ง ์์๊ฑฐ๋, ์กด์ฌํ์ง ์๋ ๊ฐ์ ๋ถ๋ฌ์ค๋ ค๊ณ ํ ๋ ์ถ๋ ฅ๋๋ค.
let none;
console.log(none);
๊ฐ๋ฐ์๊ฐ ์ง์ ์ค์ ํ์ง ์์๋ ์์์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ํ ๋ณํ ํ๋ ๊ฒ
let num = 10;
let str = "20";
const result = num + str;
์ซ์์ ๋ฌธ์์ด์ ๋ง์ ํ ๊ฒฝ์ฐ, ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ์๋์ผ๋ก num์ str๋ก ํด์ํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅ
๊ฐ๋ฐ์๊ฐ ์ง์ ํจ์ ๋ฑ์ ์ด์ฉํด ํ ๋ณํ ํ๋ ๊ฒ
let str2 = "10๊ฐ";
let strToNum2 = parseInt(str2);
๋ฌธ์์ด -> ์ซ์
let num1 = 20;
let numToStr1 = String(num1);
์ซ์ -> ๋ฌธ์์ด
=
+, -, *, /, %
+=, =+, *=, /=, %=
++๋ณ์๋ช
: ์ ์ ์ฐ์ฐ
๋ณ์๋ช
++ : ํ์ ์ฐ์ฐ
or ||
and &&
not !
let or = true || false; //true
let and = true && false; //false
let not = !true; //false
or -> ํ๋๋ง ์ฐธ์ด๋ฉด true
and -> ๋๊ฐ ๋ชจ๋ ์ฐธ์ด๋ฉด true
not -> ๋ฐ์
===
!==
<
>
<=
>=
==์ ๋๋ฒ ๋ถ์ด๋ ์ด์ ? -> ์๋ฃํ ๊น์ง ๊ฐ์์ง๋ฅผ ๋ณด๊ธฐ ์ํด!
let comp1 = 1 === "1"; //false
let comp2 = 1 !== 2; //true
์กด์ฌํ๋ ๊ฐ์ ์ถ๋ ค๋ด๋ ๊ธฐ๋ฅ
null, undefined๊ฐ ์๋ ๊ฐ์ ์ฐพ์๋ด๋ ์ฐ์ฐ์
let var1;
let var2 = 10;
let var3 = 20;
let var4 = var1 ?? var2;
let var6 = var3 ?? var2;
console.log(var4); //10
console.log(var6); //20
var1์ undefined ๊ฐ์ด๋ฉฐ, var2๋ 10์ด๋ค. ๋ฐ๋ผ์ var4๋ 10์ด ์ถ๋ ฅ๋๋ค.
var3 & var2 ๋ชจ๋ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ ์์ ์ ์ var3์ ํด๋น๋๋ ๊ฐ์ด var6์ ์ถ๋ ฅ๋๋ค.
๊ฐ์ ํ์ ์ ๋ณด์ฌ์ฃผ๋ ์ฐ์ฐ์
ํญ์ 3๊ฐ ์ฌ์ฉํ๋ ์ฐ์ฐ์
์กฐ๊ฑด์์ ์ด์ฉํด์ ์ฐธ, ๊ฑฐ์ง์ผ ๋์ ๊ฐ์ ๋ค๋ฅด๊ฒ ๋ฐํ
let var8 = 10;
let res = var8 % 2 === 0 ? "์ง์" : "ํ์";
console.log(res);
์ฐธ์ผ๋ -> ์ง์
๊ฑฐ์ง์ผ๋ -> ํ์
if ~ else if ~ else
if๋ก ์์ํ์ฌ else๋ก ๋๋์ผํ๋ค.
switch- case - break - default
๋ค์์ ์กฐ๊ฑด์ ์ฒ๋ฆฌํ ๋ if๋ณด๋ค ๋ ์ง๊ด์์ด๋ค.
for(์ด๊ธฐํ ์ ; ์กฐ๊ฑด์ ; ์ฆ๊ฐ์)
for๋ฌธ์ ๊ทธ๋ง ํ๊ณ ์ถ์ ๋๋ break ์ฌ์ฉ
๋ฐ๋ณต์ ํน์ ํ์ฐจ๋ฅผ ๊ฑด๋๋ฐ๊ฒ ๋ง๋ค๊ณ ์ถ์ผ๋ฉด continue ์ฌ์ฉ
for (let idx = 1; idx <= 10; idx++) {
if (idx % 2 === 0) {
continue;
}
console.log(idx);
if (idx >= 5) {
break;
}
}
function ํจ์๋ช
() {
console.log(" ์ถ๋ ฅ ๊ฐ ");
}
ํจ์๋ช
();
function ํจ์๋ช
(๋งค๊ฐ๋ณ์ 1, ๋งค๊ฐ๋ณ์ 2){
let ๋ณ์ = ๋งค๊ฐ๋ณ์ 1 * ๋งค๊ฐ๋ณ์ 2 ;
console.log(ํจ์๋ช
);
}
ํจ์๋ช
(์ธ์ ๊ฐ, ์ธ์ ๊ฐ);
ํจ์ ์์ ๋ ๋ค๋ฅธ ํจ์๋ฅผ ์ฌ์ฉํด๋ ๋๋ค.
function ํจ์1 (๋งค๊ฐ 1, ๋งค๊ฐ2) {
function ํจ์2() {
console.log("ํจ์2");
}
ํจ์2 ();
let ๋ณ์ = ๋งค๊ฐ1 * ๋งค๊ฐ2;
return ๋ณ์;
}
์ ์ธ๋ฌธ์ด ํธ์ถ๋ฌธ๋ณด๋ค ์๋์ ์์ด๋ JavaScript์์๋ ์๋ํ๋ค.
let varA = function() {
console.log("funcB");
};
varA();
ํจ์๋ฅผ ๊ตณ์ด ๋ฐ๋ก ์ ์ธํ์ง ์๊ณ ๋ณ์์ ๋ฐ๋ก ๋ด์๋ฒ๋ฆฌ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค.
=> ํ์ดํ ๋ค์ ๊ฐ์ ๋ฐ๋ก ๋ฐํํ๋ ๋ฐฉ๋ฒ์ด๋ค.
let varA = () => 1;
console.log(varC());
์์ ์ด ์๋ ๋ค๋ฅธ ํจ์์, ์ธ์๋ก์จ ์ ๋ฌ๋ ํจ์
function main(value){
}
function sub() {
console.log("sub");
}
main(sub);
//sub
mainํจ์์ value ๋งค๊ฐ๋ณ์ ๊ฐ์ sub ํจ์๊ฐ์ด๋ค.
์ด์ฒ๋ผ main์ด๋ผ๋ ๋ค๋ฅธ ํจ์์ ํจ์๊ฐ ์ธ์๋ก์จ ๋ค์ด๊ฐ ํจ์๋ฅผ ์ฝ๋ฐฑ ํจ์๋ผ๊ณ ํ๋ค.
์ค๋ณต์ฝ๋๊ฐ ๋ฐ์ํ์ ๋ ์ ์ฉํ๋ค.
function repeat(count) {
for (let idx = 1; idx <= count; idx++) {
console.log(idx);
}
}
function repeatDouble(count) {
for (let idx = 1; idx <= count; idx++) {
console.log(idx * 2);
}
}
function repeatTriple(count) {
for (let idx = 1; idx <= count; idx++) {
console.log(idx * 3);
}
}
repeat(5);
repeatDouble(5);
repeatTriple(5);
์ด๋ฐ์์ผ๋ก ์ฝ๋๋ฅผ ์ง๊ฒ ๋๋ฉด ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ค.
function repeat(count, callback) {
for (let idx = 1; idx <= count; idx++) {
callback(idx);
}
}
repeat(5, function (idx) {
console.log(idx);
});
repeat(5, function (idx) {
console.log(idx * 2);
});
repeat(5, function (idx) {
console.log(idx * 3);
});
์ฝ๋ฐฑ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๋๊ฐ ํจ์ฌ ๊ฐ๋จํด์ง๋ค.
๋ณ์๋ ํจ์์ ์ ๊ทผํ๊ฑฐ๋ ํธ์ถํ ์ ์๋ ๋ฒ์์ด๋ค.
๋ฐ๊นฅ์์ ์ ์ธ๋ ๋ณ์ -> ์ด๋์๋ ์ ๊ทผ ๊ฐ๋ฅ
ํจ์ ๋ด๋ถ์์ ์ ์ธํ ๋ณ์ -> ํจ์ ๋ธ๋ก ์ธ๋ถ์์ ์ถ๋ ฅํ๋ ค๊ณ ํ๋ฉด ์ค๋ฅ
์์ ํ์ ์ด ์๋ ๊ฐ์ฒด ํ์ ์ ์๋ฃํ
let obj1 = new Object(); // ๊ฐ์ฒด ์์ฑ์
let obj2 = {}; // ๊ฐ์ฒด ๋ฆฌํฐ๋ด (๋๋ถ๋ถ ์ฌ์ฉ)
let ํจ์๋ช
= {
key : value
.
.
.
};
๋์ด์ฐ๊ธฐ๊ฐ ์๋ key์ธ ๊ฒฝ์ฐ "" ํฐ ๋ฐ์ดํ๋ก ๋ฌถ์ด์ค์ผํ๋ค.
let name = person.name; //์ ํ๊ธฐ๋ฒ
let age = person ["age2"]; //๊ดํธ ํ๊ธฐ๋ฒ
์กด์ฌํ์ง ์๋ ํ๋กํผํฐ์ ์ ๊ทผํ๋ฉด undefined ์ถ๋ ฅ
person.job = "fe developer";
person.job = "educator";
person["favoriteFood"] = "์ด์ฝ๋ฆฟ";
delete person.job;
delete person["favoriteFood"];
let result1 = "name" in person;
let result2 = "cat" in person;
console.log(result2);
const animal = {
type: "๊ณ ์์ด",
name: "๋๋น",
color: "black",
};
animal.age = 2; // ์ถ๊ฐ
animal.name = "๊น๋ง์ด"; // ์์
delete animal.color; // ์ญ์
๊ฐ์ด ํจ์์ธ ํ๋กํผํฐ์ด๋ค.
const person = {
name: "์ด์ ํ",
// ๋ฉ์๋ ์ ์ธ
sayHi() {
console.log("์๋
!");
},
};
์ฌ๋ฌ๊ฐ์ ๊ฐ์ ์์ฐจ์ ์ผ๋ก ๋ด์ ์ ์๋ ์๋ฃํ
let arrA = new Array(); // ๋ฐฐ์ด ์์ฑ์
let arrB = []; // ๋ฐฐ์ด ๋ฆฌํฐ๋ด (๋๋ถ๋ถ ์ฌ์ฉ)
let arrC = [
1,
2,
3,
true,
"hello",
null,
undefined,
() => {},
{},
[], // ๋ฐฐ์ด์ ๋ชจ๋ ๊ฐ์ ๋ค ๋ฃ์ ์ ์๋ค..!
];
let item1 = arrC[0];
let item2 = arrC[1];
arrC[0] = "hello";
console.log(arrC);
๋ฐฐ์ด์ 0๋ถํฐ ์ธ๊ธฐ ๋๋ฌธ์ ์ฒซ๋ฒ์งธ ์์๋ฅผ 0์ผ๋ก ๋ถ๋ฌ์์ผํ๋ค.