๊ฐ์ฒด์๋ฃํ
๊ฐ์ฒด ์์ ๊ฐ์ ์ค๋ณต์ ํ์ฉํ์ง ์๋๋ค -> ์งํฉ ๊ฐ๋
let s = new Set('abcdeeeeeeeee');
s.size;
// Set์ ๊ฐ ์ถ๊ฐํ๊ธฐ
s.add('f');
// Set ์ํํ๊ธฐ
for (let variable of s) {
console.log(variable);
}
// ๊ฐ์ด ๋ฐฐ์ด์ธ ๊ฒฝ์ฐ
let ss = new Set('abcdeeeeeeeee'.split(''));
// Set์ ๊ฐ ์ ๊ฑฐํ๊ธฐ
ss.delete('b');
// Set์ ๊ฐ ํ์ธํ๊ธฐ
ss.has('a');
// Set์ ๋ชจ๋ ๊ฐ ์ ๊ฑฐํ๊ธฐ
ss.clear;
ํฉ์งํฉ, ๊ต์งํฉ, ์ฐจ์งํฉ
let a = new Set('abc');
let b = new Set('cde');
// ํฉ์งํฉ
let union = new Set([...a].concat(...b));
// ๊ต์งํฉ
let cro = [...a].filter(value => b.has(value));
// ์ฐจ์งํฉ
let dif = [...a].filter(x => !b.has(x));
NaN
๊ณผ undefined
๋ Set
์ ์ ์ฅํ ์ ์๋ค. ์๋ NaN !== NaN์ด์ง๋ง, Set
์์๋ NaN == NaN์ผ๋ก ๊ฐ์ฃผ๋๋ค.
let test = ["์ค๋ง๋", NaN, NaN, NaN];
let s = new Set(test);
console.log(s); // Set(2) {'์ค๋ง๋', NaN}
forEach(): array์ ๋ค๋ฅด๊ฒ value๊ฐ 2๋ฒ ๋ฐ๋ณต๋๋ค
let s = new Set("aabbb");
// IE10์ ๋ฏธ์ง์
// s.forEach((value, value, set) => {});
s.forEach((a, b, set) => {
console.log(a, b, set);
});
// a a Set(2) {'a', 'b'}
// b b Set(2) {'a', 'b'}
์์ ์ ํธ์ถํ ๊ฐ์ฒด or ์์ ์ด ์์ฑํ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ์๊ธฐ ์ฐธ์กฐ ๋ณ์
function a() {
console.log(this);
}
a(); // Window ํธ์ถ
window.a(); // Window ํธ์ถ
let myObj = {
val1: 100,
func1: function () {
console.log(this);
},
};
myObj.func1(); // myObj ํธ์ถ
let test = myObj.func1;
test(); // Window ํธ์ถ
const person = {
name: "mallang",
age: 23,
a() {
console.log(this);
console.log(this.name);
function b() {
console.log(this);
console.log(this.name);
function c() {
console.log(this);
console.log(this.name);
}
c();
// Window
//
}
b();
// Window
//
},
};
person.a();
// {name: 'mallang', age: 23, a: ฦ}
// mallang
const person2 = {
name: "mallang",
age: 23,
a() {
console.log(this);
console.log(this.name);
let b = () => {
console.log(this);
console.log(this.name);
let c = () => {
console.log(this);
console.log(this.name);
};
c();
// {name: 'mallang', age: 23, a: ฦ}
// mallang
};
b();
// {name: 'mallang', age: 23, a: ฦ}
// mallang
},
};
person2.a();
// {name: 'mallang', age: 23, a: ฦ}
// mallang
function Book(์ฑ
์ด๋ฆ, ์ฑ
๊ฐ๊ฒฉ, ์ ์, ์ถํ์ผ) {
this.์ถ๋ ฅ = console.log(this);
this.์ฑ
์ด๋ฆ = ์ฑ
์ด๋ฆ;
this.์ฑ
๊ฐ๊ฒฉ = ์ฑ
๊ฐ๊ฒฉ;
this.์ ์ = ์ ์;
this.์ถํ์ผ = ์ถํ์ผ;
}
let newBook = new Book("Javascript", 1000, "์ค๋ง๋", "2023.04.13");
// Book {}
// ์ ์: "์ค๋ง๋"
// ์ฑ
๊ฐ๊ฒฉ: 1000
// ์ฑ
์ด๋ฆ: "Javascript"
// ์ถ๋ ฅ: undefined
// ์ถํ์ผ: "2023.04.13"
[1, 2, 3].forEach(function () { console.log(this); }, [10, 20, 30]);
// [10, 20, 30]
// [10, 20, 30]
// [10, 20, 30]
let ์ธ์ธ๊ท์ = {
์ฑ
: 10,
์์์ฝํ
์ธ : 50,
};
function ์ธ์ธ๊ณ์ฐํจ์์ฑ
(e) {
return e * (this.์ฑ
/ 100);
}
function ์ธ์ธ๊ณ์ฐํจ์์์(e) {
return e * (this.์์์ฝํ
์ธ / 100);
}
console.log([100, 200, 300].map(์ธ์ธ๊ณ์ฐํจ์์ฑ
, ์ธ์ธ๊ท์ )); // [10, 20, 30]
console.log([100, 200, 300].map(์ธ์ธ๊ณ์ฐํจ์์์, ์ธ์ธ๊ท์ )); // [50, 100, 150]
ํจ์์ call(), apply(), bind() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์์ ์๋๋๋ก this๋ฅผ ์กฐ์ํ๊ฑฐ๋ ๊ณ ์ ํด ๋ ์ ์๋ค
var peter = {
name: "Peter Parker",
sayName: function () {
console.log(this.name);
},
};
var bruce = {
name: "Bruce Wayne",
};
peter.sayName.call(bruce); // Bruce Wayne
peter.sayName(); // Peter Parker
var peter = {
name: "Peter Parker",
sayName: function (๊ฐํ์ฌ) {
console.log(this.name + ๊ฐํ์ฌ);
},
};
var bruce = {
name: "Bruce Wayne",
};
peter.sayName.call(bruce, "!"); // Bruce Wayne!
peter.sayName("!"); // Peter Parker!
peter.sayName(); // Peter Parkerundefined
var peter = {
name: "Peter Parker",
sayName: function (is, is2) {
console.log(this.name + " is " + is + " or " + is2);
},
};
var bruce = {
name: "Bruce Wayne",
};
peter.sayName.apply(bruce, ["batman", "richman"]); // Bruce Wayne is batman or richman
function sayName() {
console.log(this.name);
}
var bruce = {
name: "bruce",
sayName: sayName,
};
var peter = {
name: "peter",
sayName: sayName.bind(bruce),
};
peter.sayName(); // bruce
bruce.sayName(); // bruce
JSON.parse()
: JSON ๋ฌธ์์ด์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ก ๋ณํ
const json = '{"result":true, "count":42}';
const obj = JSON.parse(json);
obj; // {result: true, count: 42}
const json = "[1, 2, 3]";
const arr = JSON.parse(json);
arr; // [1, 2, 3]
JSON.stringify()
: ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ฅผ JSON ๋ฌธ์์ด๋ก ๋ณํ
const json = { result: true, count: 42 };
const str = JSON.stringify(json);
str; // '{"result":true,"count":42}'
// ๊น์ ๋ณต์ฌ
let l = [10, 20, 30];
let a = JSON.parse(JSON.stringify(l));
a[0] = 1000;
console.log(l); // [10, 20, 30]