JavaScript - 화살표 함수 사용 시 ()와 {} 사용상 주의할 점

bigbrothershin·2020년 2월 11일
10

JavaScript

목록 보기
11/17
post-thumbnail

개요

Expected an assignment or function call and instead saw an expression  no-unused-expressions

React compile 중 위와 같은 에러가 발생했을 때, JavaScript 작성에 다음과 같은 실수가 없는 지 확인하면 문제를 해결할 수도 있다.

JavaScript 화살표 함수 주의사항

const Button = () => (
    <button>Hello world</button>
)

화살표 함수 - JavaScript | MDN에 따르면 화살표 함수의 경우 괄호()로 감싸진 부분이 return 된다(return문을 작성하지 않아도 return 됨).

반면에 중괄호{}로 감싸진 다음과 같은 함수는 return문이 없다면 return 값을 반환하지 않는다.

const Button = () => {
    <button>Hello world</button>
}

console.log(Button); // undefined

따라서 중괄호{}를 사용하여 return 값을 반환하고자 하는 함수를 만드려면 다음과 같이 return 문을 사용하여 코드를 작성해야한다.

const Button = () => {
    return <button>Hello world</button>
}

출처: expected assignment or function call: no-unused-expressions ReactJS - Stack Overflow

구문

기본 구문

(param1, param2,, paramN) => { statements }
(param1, param2,, paramN) => expression
// 다음과 동일함:  => { return expression; }

// 매개변수가 하나뿐인 경우 괄호는 선택사항:
(singleParam) => { statements }
singleParam => { statements }

// 매개변수가 없는 함수는 괄호가 필요:
() => { statements }

고급 구문

// 객체 리터럴 표현을 반환하기 위해서는 함수 본문(body)을 괄호 속에 넣음:
params => ({foo: bar})

// 나머지 매개변수 및 기본 매개변수를 지원함
(param1, param2, ...rest) => { statements }
(param1 = defaultValue1, param2,, paramN = defaultValueN) => { statements }

// 매개변수 목록 내 비구조화도 지원됨
var f = ([a, b] = [1, 2], {x: c} = {x: a + b}) => a + b + c;
f();  // 6

출처: 화살표 함수 - JavaScript | MDN

profile
JavaScript, Node.js 그리고 React를 배우는

2개의 댓글

comment-user-thumbnail
2020년 7월 20일

오 제가 찾던 내용이에요! 감사합니다!! 😀

답글 달기
comment-user-thumbnail
2020년 9월 25일

이 글 덕분에 6시간동안 붙잡던거 해결했네요... 눙물이 다납니다 선생님 감사함니다

답글 달기