Java Script & Type Script
[JS] 내가 몰랐던 ES6 최신문법
쩰라
2023. 7. 10. 11:41
728x90
ES6의 큰 특징으로 유명한 것들 말고, 찐으로 내가 몰랐던 문법들이다.
나머지 매개변수
function func(a,b,c, ...args){
console.log(...args)
}
func(1,2,3)
func(1,2,3,4,5,6,7)
/// 매개변수로 더 많은 파라미터들이 들어올 수 있다는 의미
일급객체로서의 함수
// 1. 변수에 함수를 할당할 수 있다. -> 함수가 마치 값으로 취급, 함수가 나중에 사용될 수 있도록 조치가 되었다.
const sayHello = function () {
console.log("hello")
}
// 2. 함수를 인자로 다른 함수에 전달할 수 있다.
function callFunction(func) {
func() // 매개변수로 전달받은 변수가 사실 함수다.
}
const sayHello = function () {
console.log("Hello")
}
callFunction(sayHello)
- 콜백함수 : 매개변수로써 쓰이는 함수
- 고차함수 : 함수를 인자로 받거나 return 하는 함수
// 3.함수를 반환할 수 있다.
function createAdder(num){
return function(x){
return x+num
}
}
const addFive = createAdder(5);
console.log(addFive(10)); // 15
// 4. 객체의 프로퍼티로 함수를 할당
const person = {
name: "John",
age: 31,
isMarried: true,
sayHello: function(){
console.log("Hello, I am" + this.name)}
}
person.sayHello() // Hello, I am John
// 근데 여기서 만약에 화살표함수를 쓴다면,
const person = {
name: "John",
age: 31,
isMarried: true,
sayHello: ()=> {
console.log("Hello, I am" + this.name)}
}
person.sayHello() // Hello, I am undefined
// 화살표함수는 This를 바인딩하지 않는다.
// 5. 배열의 요소로 함수를 할당
const myArr=[
function (a,b){
return a+b;
}, function (a,b) {
return a-b;
}
]
console.log(myArr[0](1,3)); // 1+3 이 실행되어 4가출력
console.log(myArr[1](10,7)); // 10-7 이 실행되어 3이 출력
function multiplyBy(num){
return function (x) {
return x * num;
};
}
function add(x,y){
return x + y;
}
const multiplyByTwo = multiplyBy(2);
// 를 풀어서 작성하면
const multiplyByTwo = function (x){
return x * 2; // multiplyBy함수의 num 파라미터에 2가 갈아끼워짐
}
console.log(multiplyByTwo(10)); // 20
const result = add(multiplyByTwo(5), multiplyByTwo(10));
console.log(result); // 30
728x90