arr.splice(): νΉμ μμλ₯Ό μ§μ°κ±°λ, μ§μ°λ©΄μ μΆκ°νκ±°λ, μμ νλ μμλ₯Ό λ°νμν€κΈ°λ νλ€.
arr.slice(): νΉμ μμλ₯Ό λ°ννλ€. κΈ°μ‘΄ κ°μ²΄μλ μν₯μλ―ΈμΉμ§ μλλ€.
arr.concat(): ν©μ³μ μ λ°°μ΄ λ°ν
arr.reduce(fn): λμ κ³μ°κ°κ³Ό νμ¬κ°μ λ°λ³΅μ μΌλ‘ λ°ννλ€. ν©κ³ κ³μ°ν λ μ μ©
ꡬ쑰 λΆν΄ ν λΉ
ꡬ쑰 λΆν΄ ν λΉ κ΅¬λ¬Έμ λ°°μ΄μ΄λ κ°μ²΄μ μμ±μ λΆν΄ν΄μ κ·Έ κ°μ λ³μμ λ΄μ μ μκ² νλ ννμμ΄λ€.
ꡬ쑰 λΆν΄ ν λΉ μ΄κΈ°ν
let [a=3, b=4, c=5] = [1]
function showName(name){
console.log(name);
}
showName('jubby'); // 'jubby'
showName('jubby', 'ohwa'); // 'jubby'
showName(); // undefined
javascriptμμ ν¨μμ λ겨주λ μΈμμ κ°μμλ μ μ½μ΄ μλ€. μλ¬κ° λ°μνμ§λ μλλ€.
ν¨μμ μΈμλ₯Ό μ»λ λ°©λ²μλ 2κ°μ§κ° μλ€.
1. argumentsλ‘ μ κ·ΌνκΈ°.(νμ΄ν ν¨μμλ μλ€)
2. λλ¨Έμ§ λ§€κ° λ³μλ₯Ό μ¬μ© (ES6 μ΄νλ‘λ μ΄κ±Έ λ κΆμ₯νλ€.)
arguments
function showName(name) {
console.log(arguments.length); // 2
console.log(arguments[0]); // jubby
console.log(arguments[1]); // ohwa
}
showName('jubby', 'ohwa');
λλ¨Έμ§ λ§€κ°λ³μ(Rest parameters)
function showName(...names) {
console.log(names);
}
showName(); // []
showName('jubby'); // ['jubby']
showName('jubby','ohwa'); // ['jubby' ,'ohwa']
μ λ¬νλ μΈμμ κ°μκ° λ€λ₯Ό λ
/* μ λ¬ λ°μ λͺ¨λ μλ₯Ό λνλ */
function add(...numbers) {
let result = 0;
numbers.forEach((num) => (result += num));
console.log(result);
}
add(1, 2, 3); // 6
add(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // 55
/* μ λ¬ λ°μ λͺ¨λ μλ₯Ό λνλ */
function add(...numbers) {
let result = numbers.reduce((prev, cur) => prev + cur);
console.log(result);
}
add(1, 2, 3); // 6
add(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // 55
/* user κ°μ²΄λ₯Ό λ§λ€μ΄ μ£Όλ μμ±μ ν¨μλ₯Ό λ§λ€κ²λλ€. */
function User(name, age, ...skills){
this.name = name;
this.age = age;
this.skills = skills;
}
const user1 = new User('jubby', 25, 'html', 'css');
const user2 = new User('ohwa', 28, 'React', 'Js');
const user3 = new User('sha', 28, 'English');
console.log(user1); // skills: ['html','css']
console.log(user2); // skills: ['React','Js']
console.log(user3); // skills: 'English'
let arr1 = [1,2,3];
let arr2 = [4,5,6];
let result = [...arr1, ...arr2];
console.log(result); // [1,2,3,4,5,6];
let result2 = [0, ...arr1, ...arr2, 7, 8, 9];
console.log(result); // [0,1,2,3,4,5,6,7,8,9];
/* arr1μ [4,5,6,1,2,3] */
let arr1 = [1,2,3];
let arr2 = [4,5,6];
arr2.forEach(num => {
arr.unshift(num); // [6,5,4,1,2,3] X
});
arr2.reverse().forEach(num => {
arr.unshift(num); // [4,5,6,1,2,3] O
});
// μ κ°κ΅¬λ¬Έ μ΄μ©
arr1 = [...arr2, ...arr1]; // κ°λ¨ν΄μ§
console.log(arr1);
let user = { name: "jubby" };
let info = { age: 30 };
let fe = ["JS", "React"];
let lang = ["Korean", "English"];
// 1. assign, forEach μ΄μ©
user = Object.assign({}, user, info, {skills: [], });
fe.forEach(item => {
user.skills.push(item);
});
lang.forEach(item => {
user.skills.push(item);
});
// 1.1 μ κ°κ΅¬λ¬Έ μ΄μ©
user.skill = [...fe, ...lang]; // κ°λ¨
// 2. μ κ°κ΅¬λ¬Έ λ§ μ΄μ©
user = {
...user,
...info,
skills: [...fe, ...lang],
};
console.log(user);
javascriptλ μ΄νμ νκ²½(Lexical Environment)μ κ°λλ€.
// 1.
// 2. let one;
// 3. one = 1;
function addOne(num) {
// 5. console.log(one + num);
}
// 4. addOne(5);
Lexical νκ²½
one: μ΄κΈ°ν X (μ¬μ© λΆκ°)
addOne: function (μ¬μ© κ°λ₯)
one: undefined (μ¬μ© κ°λ₯)
addOne: function
one: 1
addOne: function
κ·Έλ¦¬κ³ 4. μμ μ μ Lexical νκ²½κ³Ό λ΄λΆ Lexical νκ²½μΌλ‘ λλλ€.
μ μ Lexical νκ²½
one: 1
addOne: function
λ΄λΆ Lexical νκ²½
num: 5
λ΄λΆ Lexical νκ²½μ μΈλΆ(μ μ) Lexical νκ²½μ λν μ°Έμ‘°λ₯Ό κ°λλ€. μ½λμμ λ³μλ₯Ό μ°Ύμ λ λ΄λΆμμ μ°Ύκ³ μμΌλ©΄ μΈλΆ, κ±°κΈ°μλ μμΌλ©΄ μ μ Lexical νκ²½κΉμ§ λ²μλ₯Ό λνμ μ°Ύλλ€.
κ·Έλμ 5. μμλ one κ³Ό numμ λ΄λΆ Lexicalμμ μ°Ύλλ€. numμ μμ§λ§ oneμ μκΈ° λλ¬Έμ μΈλΆλ‘ λνμ μ°Ύκ² λλ€.
// 1.
function makeAdder(x) {
// 3. return function(y) {
// 4. return x + y;
}
}
// 2. const add3 = makeAdder(3);
// 4. console.log(add3(2));
μ μ Lexical νκ²½
makeAdder: function
add3: μ΄κΈ°νX
μ μ Lexical νκ²½
makeAdder: function
add3: μ΄κΈ°νX
makeAdder Lexical νκ²½
x: 3
μ μ Lexical νκ²½
makeAdder: function
add3: function
makeAdder Lexical νκ²½
x: 3
μ μ Lexical νκ²½
makeAdder: function
add3: function
makeAdder Lexical νκ²½
x: 3
μ΅λͺ ν¨μ Lexical νκ²½
y: 2
ν΄λ‘μ
ν¨μμ κ·Έ ν¨μμ Lexical νκ²½μ μ‘°ν©μ΄λ€.
ν¨μκ° μμ±λ λΉμ μΈλΆ λ³μλ₯Ό κΈ°μ΅νκ³ , μμ±λ μ΄νμλ κ³μ μ κ·Ό κ°λ₯νλ€.
μΈλΆ ν¨μμ μ€νμ΄ λλμ μλ©Έλ μ΄νμλ λ΄λΆ ν¨μκ° μΈλΆ ν¨μμ λ³μμ μ κ·Όν μ μλ€.
function makeCounter() {
let num = 0; // μλν
return function() {
return num++;
};
}
let counter = makeCouter();
console.log(couter()); // 0
console.log(couter()); // 1
console.log(couter()); // 2
μΌμ μκ°μ΄ μ§λ ν ν¨μλ₯Ό μ€ν
function fn() {
console.log(3);
}
setTimeout(fn, 3000);
μμ κ°μ μ½λ
setTimeout(function() {
console.log(3);
}, 3000);
/* μΈμ λ°κΈ° */
function showName(name) {
console.log(name);
}
setTimeout(showName, 3000, 'jubby');
clearTimeout
μμ λ μμ
μ μμ€λ€. tIdλ₯Ό μ΄μ©ν΄μ μ€μΌμ€λ§μ μ·¨μν μ μλ€.
/* clearTimeout */
const tId function showName(name) {
console.log(name);
}
setTimeout(showName, 3000, 'jubby');
clearTimeout(tId); // 3μ΄κ° μ§λκΈ° μ μ μ€νλκΈ° λλ¬Έμ μ무μΌλ μΌμ΄λμ§ μλλ€.
μΌμ μκ° κ°κ²©μΌλ‘ ν¨μλ₯Ό λ°λ³΅
function showName(name) {
console.log(name);
}
const tId = setInterval(showName, 3000, 'jubby'); // 3μ΄λ§λ€ jubbyκ° κ³μ μ°νλ€.
clearInterval(tId); // μ€λ¨νλ €λ©΄ clearInterval μ¬μ©νλ€.
μ£Όμμ¬ν
/* delay = 0? */
setTimeout(function() {
console.log(2)
}, 0);
console.log(1);
μ€νκ²°κ³Ό
1
2
μμ
let num = 0;
function showTime() {
console.log(`μλ
νμΈμ. μ μνμ μ§ ${num++}μ΄κ° λμμ΅λλ€.`);
if(num > 5) {
clearInterval(tId);
}
}
const tId = setInterval(showTime, 1000);
μ€νκ²°κ³Ό
μλ
νμΈμ. μ μνμ μ§ 0μ΄κ° λμμ΅λλ€.
μλ
νμΈμ. μ μνμ μ§ 1μ΄κ° λμμ΅λλ€.
μλ
νμΈμ. μ μνμ μ§ 2μ΄κ° λμμ΅λλ€.
μλ
νμΈμ. μ μνμ μ§ 3μ΄κ° λμμ΅λλ€.
μλ
νμΈμ. μ μνμ μ§ 4μ΄κ° λμμ΅λλ€.
μλ
νμΈμ. μ μνμ μ§ 5μ΄κ° λμμ΅λλ€.