ES5(ECMAScript 5)
- ์๋ฐ์คํฌ๋ฆฝํธ์ 5๋ฒ์งธ ๋ฒ์ ์ผ๋ก, 2009๋ ์ ๋ฐํ๋์์ต๋๋ค. ES5๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ฒ ๋ณด๋ค๋ ๊ธฐ์กด์ ๊ธฐ๋ฅ์ ๊ฐ์ ํ๋๋ฐ ์ด์ ์ ๋ง์ท์ต๋๋ค.
- ๊ฐ์ ๋ ๊ธฐ๋ฅ์ ์๋์ ๊ฐ์ต๋๋ค.
JSON ๊ฐ์ฒด
- JSON(JavaScript Object Notation)์ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๋๋ฐ ์ฌ์ฉ๋๋ ๊ฒฝ๋ ๋ฐ์ดํฐ ํ์ ์ ๋๋ค.
- ES5์์๋
JSON.parse()
์JSON.stringify()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ JSON ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ์ ์์ต๋๋ค.
let data = '{"name":"John", "age":30}';
let obj = JSON.parse(data);
console.log(obj.name); // "John"
console.log(JSON.stringify(obj)); // "{"name":"John","age":30}"
Array ๋ฉ์๋
๊ธฐ์กด Array ๋ฉ์๋์ ์๋ก์ด ๋ฉ์๋๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ์ด๋ฌํ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋์ฑ ๊ฐ๋จํ๊ณ ํจ์จ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
forEach()
: ๋ฐฐ์ด์ ๊ฐ ์์๋ฅผ ์ํํ๋ฉฐ, ์์์ ๋ํด ์ง์ ๋ ํจ์๋ฅผ ์คํํ๋ ๋ฉ์๋- โญ๏ธ
map()
: ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์ํํ๋ฉด์ ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ญ๋๋ค. filter()
: ๋ฐฐ์ด์ ์์ ์ค์์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์๋ง ์ถ์ถํ์ฌ ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ญ๋๋ค.reduce()
: ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์ํํ๋ฉฐ, ์ํ ๊ณผ์ ์์ ๋์ ๊ฐ์ ์ฌ์ฉํ์ฌ ํ๋์ ๊ฒฐ๊ณผ๊ฐ์ ๋ง๋ญ๋๋ค.
let numbers = [1,2,3,4,5,6,7,8,9,10];
numbers.forEach((num) => console.log(num));
let squares = numbers.map(num => num * num);
console.log(squares);
let evenNumbers = numbers.filter(num => num % 2 == 0);
console.log(evenNumbers);
let sum1 = numbers.reduce((tot, num) => tot + num, 0);
console.log(sum1);
1
2
3
4
5
6
7
8
9
10
[
1, 4, 9, 16, 25,
36, 49, 64, 81, 100
]
[ 2, 4, 6, 8, 10 ]
55
ES6(ECMAScript 6)
- ECMAScript 6์ ์๋ฐ์คํฌ๋ฆฝํธ์ 6๋ฒ์งธ ๋ฒ์ ์ผ๋ก 2015๋ ์ ๋ฐํ๋์์ต๋๋ค.
- ES6์ ์ด์ ๋ฒ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ณด๋ค ๋์ฑ ๊ฐ๋ ฅํ๊ณ ํจ์จ์ ์ธ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
let, const
ES6์์๋ let
๊ณผ const
ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ณ์๋ฅผ ์ ์ธํฉ๋๋ค.
let
์ ๋ธ๋ก ์ค์ฝํ ๋ณ์๋ฅผ ์ ์ธํ๊ณ , const
๋ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๋ณ์๋ฅผ ์ ์ธํฉ๋๋ค.
const arr = [1, 2, 3];
arr[0] = 100;
// ์ค๋ฅ๊ฐ ์๋๋ ์ด์ : ์ฐธ์กฐ ์ฃผ์๋ ๋ณ๊ฒฝ๋์ง ์๊ณ , ์ฃผ์๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ๋ง ๋ณ๊ฒฝ๋๊ธฐ ๋๋ฌธ์..
// ์ ๋ฆฌํ๋ฉด property, value๋ const๋ ๋ณ๊ฒฝ ๊ฐ๋ฅ
console.log(arr); // [100, 2, 3]
// arr = [4,5,6]; // const์ ์๋ก์ด ๊ฐ์ฒด ์ฐธ์กฐ ์ฃผ์๋ฅผ ๋์
ํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ค๋ฅ.
const arr1 = [1, 2, 3];
const arr2 = arr1.concat([4, 5, 6]);
console.log(arr2);
console.log(arr1); // ๋ณํ๋์ง ์์.
ํ์ดํ ํจ์
ํ์ดํ ํจ์๋ ๊ฐ๋จํ๊ณ ๊ฐ๊ฒฐํ ์ฝ๋๋ฅผ ์์ฑํ๋๋ฐ ์ ์ฉํฉ๋๋ค.
const add = (num1, num2) => console.log(num1 + num2);
add(4, 3);
// โจ ํ์ดํ ํจ์ ์ฌ์ฉ์ this ๋ฌธ์ ํด๊ฒฐ ๊ฐ๋ฅ!
/* ๊ธฐ์กด์ ํจ์ ์ ์ ๋ฐฉ์์์ ํจ์ ๋ด๋ถ์์ this ํค์๋๋ฅผ ์ฌ์ฉ ํ ๋,
ํธ์ถ๋๋ ์์น์ ๋ฐ๋ผ ์ฐธ์กฐํ๋ ๊ฐ์ฒด๊ฐ ๋ค๋ฅด๊ฒ ๊ฒฐ์ ๋๋ ๋ฌธ์ ๊ฐ ์์ */
const obj = {
name: "ํ๊ธธ๋",
func1() {
const func2 = function () {
console.log(this.name);
};
func2();
},
};
obj.func1(); // undefined
const obj2 = {
name: "ํ๊ธธ๋",
func1() {
const func2 = () => console.log(this.name);
func2();
},
};
obj2.func1(); // ํ๊ธธ๋
/* --------------------------------------------- */
const btn1 = document.getElementById("myButton1");
const btn2 = document.getElementById("myButton2");
btn1.addEventListener("click", () => console.log(this));
// ์ด ๋๋ this ๋ง๊ณ btn1 ๋ฃ์ผ๋ฉด ์ ์์ ์ผ๋ก ์ฐพ์์ค. ใ
ใ
btn2.addEventListener("click", function () {
console.log(this);
});
/* --------------------------------------------- */
const pBtn = document.getElementById("pButton");
const pEls = document.querySelectorAll("p");
pBtn.addEventListener("click", () => pEls.forEach((e) => console.log(e)));
ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด
- ๋ฐฑํฑ(``)์ผ๋ก ๋ฌถ๋ ๋ฌธ์์ด์ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ด๋ผ๊ณ ํฉ๋๋ค.
- ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ ๋ณ์๋ฅผ ์ฝ๊ฒ ํฌํจํ ์ ์๊ณ , ์ฌ๋ฌ ์ค์ ๋ฌธ์์ด์ ์ฝ๊ฒ ํ์ํ ์ ์์ต๋๋ค.
const userName = "ํ๊ธธ๋";
const season = "๋ด";
const message = `์๋
ํ์ธ์, ${userName}๋, ${season}์ด ์์ต๋๋ค.`;
console.log(message);
์๋
ํ์ธ์, ํ๊ธธ๋๋, ๋ด์ด ์์ต๋๋ค.
์ ๊ฐ ์ฐ์ฐ์(Spread operator)
- ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ณ ์์๋ก ๋ถ๋ฆฌ
const arr3 = [1,2,3];
const arr4 = [4,5,6];
const newArr = [...arr3, ...arr4];
console.log(newArr);
const arr5 = [1,2,3,4,5,100];
const arr6 = [...arr5];
console.log(arr6);
// ์ ๊ฐ ์ฐ์ฐ์๋ฅผ ์ด์ฉํ ๊ฐ๋ณ ์ธ์ ํจ์ ๋ง๋ค๊ธฐ
function sum(...numbers) {
return numbers.reduce((tot, num) => tot + num, 0);
}
console.log(sum(1,2,3,4,5,6,7,8,9,10));
[ 1, 2, 3, 4, 5, 6 ]
[ 1, 2, 3, 4, 5, 100 ]
55
'๐จ Frontend > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JavaScript - ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ ํจ๊ณผ์ ์ผ๋ก ๊ฐ์ ธ์ค๊ธฐ (0) | 2025.01.08 |
---|---|
JavaScript/HTML - DOM์ด๋? (0) | 2025.01.08 |
๐ฆVanilla JS (11) HTTP ๋น๋๊ธฐ ํต์ (2) | 2023.04.08 |
๐ฆVanilla JS (10) JSON (0) | 2023.04.05 |
๐ฆVanilla JS (9) ์ ๊ท ํํ์ (0) | 2023.04.05 |