220826(κΈ)
πͺ΄ μ±μ₯μΌμ§
μ±
ν볡ν μ΄κΈ°μ£Όμμ(μ¨μΈ λ€μ΄μ΄)
μ λ΄μ©μ μκ·Ήλ°μ μμνλ μλ°ν μ±μ₯κΈ°λ‘
μ΄μμλ κ½κ³Ό μ£½μ κ½μ μ΄λ»κ² ꡬλ³νλκ°?
μ±μ₯νκ³ μλ κ²μ΄ μ΄μ μλ κ²μ΄λ€.
μλͺ μ μ μΌν μ¦κ±°λ μ±μ₯μ΄λ€!
π³ ν€μλ μ΅λν κ°λ¨νκ² μ 리, μΆνμ 보면μ μ€μ€λ‘ μ€λͺ
JavaScript
κ°μ²΄ 리ν°λ΄
κ°μ²΄λ λκΉ
νλμ κ°λ§ λνλ΄λ μμ νμ
κ³Ό λ€λ₯΄κ² κ°μ²΄λ λ€μν νμ
μ κ°μ νλμ λ¨μλ‘ ν©μ³λμ 볡ν©μ μΈ μλ£κ΅¬μ‘°μ΄λ€.
λν μλ°μ€ν¬λ¦½νΈμ ν¨μλ μΌκΈ κ°μ²΄
μ΄κΈ°μ κ°μΌλ‘ μ·¨κΈν μ μλ€.
μΌκΈ κ°μ²΄λ?
- λ³μμ ν λΉν μ μλ€.
- λ€λ₯Έ ν¨μλ₯Ό μΈμλ‘ μ λ¬λ°μ μ μλ€.
- λ€λ₯Έ ν¨μμ κ²°κ³Όλ‘ λ¦¬ν΄λ μ μλ€.
κ°μ²΄λ ν¬κ² νλ‘νΌν°
μ λ©μλ
λ‘ κ΅¬μ±λλ€.
μ‘°κΈ λ¨μνκ² μκ°νλ©΄ νλ‘νΌν°λ μνλ₯Ό λνλ΄λ κ°
μ λνλ΄κ³ λ©μλλ κ·Έ κ°μ μ°Έμ‘°νκ³ μ‘°μ κ°λ₯ν λμ
μ΄λΌκ³ μκ°ν μ μλ€.
μλ μμμ²λΌ, μλμ°¨λΌλ κ°μ²΄λ₯Ό λ§λ€μμ λ κ·Έ μμλ μλμ°¨κ° μμ§μΈ distance(νλ‘νΌν°)κ° μκ³ κ·Έ 거리λ₯Ό μ¦κ°μν€λ ν¨μμΈ move(λ©μλ)κ° μλ€.
μ½κ° μ΄λ€ νΉμ κ°κ³Ό κΈ°λ₯μ κ°μ§ λ‘λ΄μ λ§λλ κΈ°λΆ..? μ΄λΌ μκ°νλ©΄ νΈνλ€.
var car = {
distance: 0,
move: function () {
this.distance++;
},
};
μ΄μ²λΌ κ°μ²΄λ₯Ό ν΅ν΄ μν
μ λμ
μ νλμ λ¨μλ‘ κ΅¬μ‘°νν μ μμ΄ μ μ©νλ©°, μ΄λ κ² κ°μ²΄μ μ§ν©μΌλ‘ νλ‘κ·Έλ¨μ νννλ νλ‘κ·Έλλ° ν¨λ¬λ€μμ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°
μ΄λΌκ³ νλ€.
κ°μ²΄ 리ν°λ΄μ λμ§?
μΌλ°μ μΌλ‘ C++μ΄λ μλ°κ°μ ν΄λμ€ κΈ°λ° κ°μ²΄μ§ν₯ μΈμ΄λ κ°μ²΄λ₯Ό μμ±ν λ, 미리 ν΄λμ€λ₯Ό λ§λ€κ³ new μ°μ°μλ₯Ό ν΅ν΄μ κ°μ²΄λ₯Ό μμ±νλ€.
κ·Έλ°λ° μ΄κ² μ¬κ±Έ, μλ°μ€ν¬λ¦½νΈλ κ°μ²΄λ₯Ό νννκΈ° μν ννλ²(리ν°λ΄)μ μ½μν¨μΌλ‘μ¨ μμ£Ό κ°λ¨νκ² κ°μ²΄λ₯Ό μμ±ν μ μλ€.
- κ°μ²΄ 리ν°λ΄
- Object μμ±μ ν¨μ
- μμ±μ ν¨μ
- Object.create λ©μλ
- ν΄λμ€(ES6μ μΆκ°λ¨)
μμ λ°©λ² μ€ κ°μ²΄ 리ν°λ΄μ {}
λ‘ κ°μ²΄λ₯Ό λ°λ‘ μμ±ν μ μλ λ°©λ²μ΄λ€. λ°λ‘ ν΄λμ€λ₯Ό μμ±νκ³ new μ°μ°μ μμ΄λ λ°λ‘ λΏ
νκ³ κ°μ²΄λ₯Ό λ§λ€ μ μλ€.
property/method, key/value
μ μ©μ΄ 4κ°μ§λ₯Ό νμ€ν μ§κ³ λμ΄κ°μ.
var obj = {
name: 'jayden', // μ΄ μνκ°μ λνλ΄λ ν μ€ μμ²΄κ° property
do: function () {
console.log('Hello World!');
}, // μ΄λ κ² λμμ λνλ΄λ(valueκ° ν¨μ) κ² method
};
// μμμ nameκ³Ό doλ key, 'jayden'κ³Ό function() ~ λ valueμ ν΄λΉνλ€.
JavaScript
λ€μν ν¨μλ€
μ¦μ μ€ν ν¨μ
ν¨μ μ μμ λμμ μ¦μ νΈμΆλλ ν¨μλ‘ λ¨ ν λ²λ§
νΈμΆλλ©° λ€μ νΈμΆν μ μλ€.
(function test() {
console.log('μ¦μ μ€ν');
})();
// test() ν΄λ μ€ν μλ¨. μλ¬ λλ€. (() λ΄μ ν¨μ μ μΈλ¬Έμ μ μΈλ¬Έμ΄ μλ ν¨μ 리ν°λ΄λ‘ νκ°λκΈ° λλ¬Έ)
// μμ ()μ μμΉλ§ λ°λκ³ μ΄λ κ² μ°κΈ°λ νλ€.
(function test() {
console.log('μ¦μ μ€ν');
})();
μ¬κ· ν¨μ
ν¨μκ° μκΈ° μμ μ νΈμΆνλ κ²μ μ¬κ· νΈμΆμ΄λΌκ³ νκ³ , μ΄λ° μ¬κ· νΈμΆνλ ν¨μλ₯Ό μ¬κ· ν¨μλΌκ³ νλ€.
μ¬κ· ν¨μλ₯Ό μ¬μ©νλ©΄ λ°λ³΅λ¬Έ μμ΄ κ°μ κ²°κ³Όλ₯Ό λΌ μ μλ€. λν, μ¬κ· ν¨μλ λ°λμ μ¬κ·λ₯Ό λ©μΆ νμΆ μ‘°κ±΄
μ΄ μμ΄μΌνλ€.
// μ¬κ· ν¨μλ₯Ό μ΄μ©ν΄ ꡬνν ν©ν 리μΌ
var factorial = function (n) {
if (n <= 1) {
return 1; // μ΄κ² 무ν μ¬κ·λ₯Ό λ©μΆ νμΆ μ‘°κ±΄(μμΌλ©΄ κ³μ μ¬κ·μ¬κ·μ¬κ·μ¬κ·μ¬κ·μ¬κ·μ¬κ·μ¬...)
}
return n * factorial(n - 1);
};
μ¬κ· ν¨μλ λ°λ³΅λλ μ²λ¦¬λ₯Ό λ°λ³΅λ¬Έ μμ΄ μΈ μ μλ€λ μ₯μ μ΄ μμΌλ!!! 무ν λ°λ³΅μ λΉ μ§ μ μκΈ° λλ¬Έμ νΉλ³ν μ¬κ· ν¨μκ° λ μ§κ΄μ μ΄κ³ νΈμν κ²½μ°κ° μλλΌλ©΄ νμ μ μΌλ‘ μ¬μ©νλ κ² λ«λ€.
μ¬κ· ν¨μκ° λ¬΄ν λ°λ³΅λμ΄μ ν¨μλ§λ€μ μ€ν 컨ν μ€νΈκ° μ½μ€νμ μμ΄λ©΄ κ·Έκ² λ°λ‘ μ λͺ ν
μ€νμ€λ²νλ‘μ°
μ€μ²© ν¨μ(λ΄λΆ ν¨μ)
ν¨μ λ΄λΆμ μ μλ ν¨μ
var outer = function () {
var inner = function () {
console.log('λ΄λΆ ν¨μμ
λλΉ.');
};
inner();
};
outer();
μμ κ°μ μμΈλ°, λ΄λΆ ν¨μ(μ€μ²© ν¨μ) λ°κΉ₯μ μΈλΆ ν¨μλΌκ³ λΆλ₯΄λ©° βμ΄κ² λ 볡μ‘ν κ² μλ?β μΆμ μ μμ§λ§
μ΄ λ΄λΆ/μΈλΆ ν¨μμ λ³μ μ°Έμ‘° λ° λ΄λΆ ν¨μμ μΈλΆ μ λ¬ λ±μ λ°λΌ ν΄λ‘μ
νμμ΄ μΌμ΄λλ€.
μ½λ°± ν¨μ
μ΄λ€ ν¨μ(κ³ μ°¨ ν¨μ)μ μΈμλ‘ μ λ¬λλ ν¨μλ‘, κ³ μ°¨ ν¨μμκ² κ·Έ μ μ΄κΆμ λ겨주λ ν¨μλ₯Ό λ§νλ€.
λΉλκΈ° μ²λ¦¬μ λ°°μ΄μ κ³ μ°¨ ν¨μμμ 맀μ°λ§€μ° μ€μν κ°λ
μ΄λ€.
// μμ1: λΉλκΈ° μ²λ¦¬μμμ μ½λ°± ν¨μ νμ©
setTimeout(function () {
console.log('λΉλκΈ° μ²λ¦¬~');
}, 3000);
// μμ2: λ°°μ΄ κ³ μ°¨ ν¨μμμμ μ½λ°± ν¨μ νμ©
[1, 2, 3].forEach((value, index) => console.log(value, index));
μμ ν¨μμ λΉμμ ν¨μ
- μμ ν¨μ: μΈλΆ μνμ μμ‘΄νμ§ μκ³ , μΈλΆ μνλ₯Ό λ³κ²½νμ§λ μλ λ³ΈμΈμ μΈμλ§μ κ°κ³ λ Έλ ν¨μ(λμΌν μΈμκ° μ λ¬λλ©΄ μΈμ λ λμΌν κ°μ΄ λμ΄)
- λΉμμ ν¨μ: μΈλΆ μνμ μμ‘΄λ νκ³ , μΈλΆ μνλ₯Ό λ©λλ‘ λ°κΎΈκΈ°λ νκ³ κΉ¨λκΉλν ν¨μ
// μμ ν¨μ
var count = 0;
function pure(n) {
return ++n
}
count = pure(count); // countμ 1 ν λΉ
count = pure(count); // countμ 2 ν λΉ
--------
// λΉμμ ν¨μ
var count = 0;
function dirty() {
return ++count;
}
dirty() // countμ 1 ν λΉλ¨
dirty() // countμ 2 ν λΉλ¨
λΉμμ ν¨μλ₯Ό μ¬μ©ν¨μΌλ‘μ¨ ν¨μ λ΄μ κ°μ΄ μλ μΈλΆμ κ°μ΄ λ³κ²½λλ κ²μ λΆμ ν¨κ³Ό
λΌκ³ νλ€.
λ¬Όλ‘ μ΄μ κ°μ ν¨κ³Όλ₯Ό νμ©ν μλ μμ§λ§, μ½λκ° κΈΈμ΄μ§μλ‘ λΉμμ ν¨μμ λΆμ ν¨κ³Όλ μ€λ₯λ₯Ό λ²ν νλ₯ μ λμ΄λ―λ‘
μ΅λν μμ ν¨μλ₯Ό μ¬μ©νμ¬ ν¨μ λ³Έμ°μ κ° μΈμλ λ°λμ§ μλλ‘ νλ κ²μ΄ μ’λ€.