// 함수
function add () {};
var add = function () {};
// 화살표 함수
var add = (x) => {
return 1;
];
var add = (x) => 1;
console.log(true ? '참' : '거짓'); // 참
console.log(fasle ? '참' : '거짓'); // 거짓
console.log(1 === 1 ? '참' : '거짓'); // 참
console.log(1 !== 1 ? '참' : '거짓'); // 거짓
배열[]
이나 객체{}
의 속성을 분해해서 그 값을 변수에 담을 수 있게 해주는 문법이다.예시) 1
let [value1, value2] = [1, "new"]
console.log("1", value1); // 1 1
console.log("2", value2); // 2 new
예시) 2
let arr = ["value1", "value2", "value3"]
let [a, b, c] = arr;
consoloe.log(a); // value1
consoloe.log(b); // value2
consoloe.log(b); // value3
let {name, age} = {
name: "nbc",
age: 30,
};
console.log("name =>", name); // name => nbc (string)
console.log("age =>", age); // age => 30 (number)
let user = {
name: "nbc",
age: 30,
};
let {
name: newName,
age: newAge,
} = user;
console.log("newName =>", newName) // newName => nbc
console.log("newAge =>", newAge) // newAge => 30
// 없는 값을 설정 했을때
let {name, age, birthday} = user;
console.log(name); // nbc
console.log(age); // 30
console.log(birthday); // undefined - 초기값을 주어 값을 변경 할 수 있다.
const name = "nbc"
const age = "30"
// key - value
const obj = {name, age}; // 배열같지만 객체이다.
const obj1 = {name: name, age: age};
// 배열
let arr = [1,2,3];
let newArr = [...arr, 4];
console.log(arr); // [1,2,3]
console.log(newArr); // [1,2,3,4]
// 객체
let user = {
name: "nbc",
age: 30,
};
let user2 = {...user}
console.log(user) // {name: "nbc", age: 30}
console.log(user2) // {name: "nbc", age: 30}
function esxampleFunc(a, b, c, ...args) {
console.log(a, b, c); // 1 2 3 출력
console.log(...args); // 4 5 6 7 출력
console.log(args); // [4, 5, 6, 7] 출력
}
esxampleFunc(1, 2, 3, 4, 5, 6, 7);
const testValue = "안녕하세요!";
console.log(`Hello World ${testValue`); // Hello World 안녕하세요!
console.log(`
hello
My name is Javascript!!!!
Nice to meet you!!!
`);
다른 객체들과 같다
const sayHello = function() {
console.log('Hello!');
};
function callFunction(func) {
// 매개변수로 받은 변수가 사실, 함수다.
func();
}
const sayHello = function() {
console.log('Hello!');
};
callFunction(sayHello); // "Hello!" 출력
function createAdder(num) {
return function(x) {
return x + num;
}
}
const addFive = createAdder(5);
console.log(addFive(10)); // 15 출력
const person = {
name: 'John',
age: 31,
isMarried: true,
sayHello: function() {
console.log(`Hello, my name is ${this.name}`); // "Hello, my name is John" 출력
}
// 화살표 함수는 this를 바인딩 하지 않는다.
sayHello: () => {
console.log(`Hello, my name is ${this.name}`) // "Hello, my name is undefined" 출력
}
};
person.sayHello();
예시) 1.
const myArray = [
function(a, b) {
return a + b;
}, // 0번째 요소
function(a, b) {
return a - b;
} // 1번째 요소
];
// 더하기
console.log(myArray[0](1, 3)); // 4 출력
// 빼기
console.log(myArray[1](10, 7)); // 3 출력
예시) 2.
function multiplyBy(num) {
return function(x) {
return x * num;
};
}
function add(x, y) {
return x + y;
}
const multiplyByTwo = multiplyBy(2);
console.log(multiplyByTwo(10)); // 20 출력
// multiplyBy(2)가
// function (x) {return x * 2;}의 함수로 봐뀐것이다.
const multiplyByThree = multiplyBy(3);
console.log(multiplyByThree(10)); // 30 출력
// multiplyBy(3)가
// function (x) {return x * 3;}의 함수로 봐뀐것이다.
const result = add(multiplyByTwo(5), multiplyByThree(10));
console.log(`FINAL => ${result}`); // FINAL => 40 출력