2017-03-18 4 views
0

일부 JS 과제를 해결하면서 화살표 함수를 사용할 때 예상대로 결과가 나타났습니다. 정상적인 함수를 사용하여 동일한 코드를 시도 할 때주의해야합니다. 누군가가 그 차이를 설명 할 수 있습니까? 아니면 오타가있을 수 있습니다 !!Arrow 함수 VS Array.map()의 일반 함수

function titleCase(str) { 
    str = str.split(' ').map(i => i[0].toUpperCase() + i.substr(1).toLowerCase()).join(' ') 
    return str; 
    } 
    console.log(titleCase("I'm a liTTle tea pot")); // I'm A Little Tea Pot 

그리고 정상적인 기능 (반환 빈 문자열)과 제 2 용액 :

function titleCase2(str) { 
    str = str.split(' ').map(function(i, index){ i[0].toUpperCase() + i.substr(1).toLowerCase()}).join(' ') 
    return str; 
    } 
    console.log(titleCase2("I'm a liTTle tea pot")); // empty string 

Screenshot of my console

You can use My Plunker here

+1

내가 스펙을 올바르게 기억한다면, 한 라인 화살표 함수는 그 라인이 무엇이든간에 반환합니다. 정규 함수는 기본적으로 그렇게하지 않습니다. – Jhecht

+0

한 줄 화살표 함수는 암시 적으로 줄을 반환합니다 - 일반 함수는 명시 적으로'return'을 필요로합니다. – hackerrdave

답변

3

여기

는 최초의 솔루션 (작품)입니다 return 키워드가 누락되었습니다. 콜백 함수가 없습니다.

Fat-arrow 함수는 기본적으로 값을 반환하며 return 키워드가 내장되어 있습니다. 일반 함수 식에서 값을 가져 오려면 반환해야합니다.

0

function titleCase2(str) { 
 
    str = str.split(' ').map(function(i, index) { 
 
    return i[0].toUpperCase() + i.substr(1).toLowerCase() 
 
    }).join(' ') 
 
    return str; 
 
} 
 
console.log(titleCase2("I'm a liTTle tea pot"));

당신은 비 화살표 기능 return 명시해야합니다. 한 줄 화살표 함수는 암시 적으로 그 한 줄의 결과를 반환합니다.

function titleCase2(str) { 
    return str.split(' ').map(function(i, index){ return i[0].toUpperCase() + i.substr(1).toLowerCase()}).join(' ') 
} 
console.log(titleCase2("I'm a liTTle tea pot")); // I'm A Little Tea Pot