let word = returnWordWithJoy('I love coding');
// 아래 코드는 변경하지 마세요
function returnWordWithJoy(word) {
if (typeof word !== 'string') {
return 'wrong type';
} else {
return word + '!';
}
}
맨위에 변수 word를 선언하는 'let word'뒤에 'I love coding' 값을 할당시키지 않았다는 점을 눈치챘다
그러나 어떻게 작성해야할지 몰랐다.
let word="I love coding"
이라고 생각했는데 아니었다. 구글개발자 도구에서도
Uncaught SyntaxError: Unexpected identifier 라는 에러가 떴다
변수가 returnWordWithJoy
함수의 밖에 있어서 인식을 못한 것 같다.
1일차 배우는 페이지의 함수part의 퀴즈에 저장된 작성법을 참고했다
function getRectangleArea (width, height) {
let rectangleArea = width * height
return rectangleArea
}
let getRectangleArea = function (width, height) {
let rectangleArea = width * height
return rectangleArea
}
"임의의 값을 입력받아 수(number)의 형태로 리턴해야 합니다."
라는 간단한 문제였지만 number함수를 만드는건 생각보다 힘든 일이었다.
function convertToNumber(anything) {
let num = Number(anything)
return num }
이건 나와 함께한 페어가 거의 정답을 맞췄다.
convertToNumber
함수안에 number함수를 넣어야한다고는 생각했는데 어떤 방식으로 넣는지 해메었다.
convertToNumber
는 함수의 이름일 뿐 아직 아무 기능이 없다 그렇기 때문에 내부에 number()
함수를 넣어주어야 한다.
복습하면서 console에서 또 실수를 했다.
convertToNumber()
로 함수가 맞는지 확인을 해야하는데 anything이나 num에 값을 대입해본 것이다. 변수 값에 =
으로 대입하면 문자열은 문자열 그대로 나오는게 당연하잖아?
그냥 number()
함수로 확인하는 것도 잘못 되었다. 그러면 convertToNumber()
함수를 확인하는 것이아니라 완전히 새로운 Number()
함수를 검토하는 것이다.
처음에 정답이라고 생각했던 오답이다.
function convertToNumber(anything) {
let Number(anything)
return convertToNumber
}
let은 변수를 선언하는 건데 변수는 온데간데 없고 number함수만 덜렁남아있다.
그리고 convertToNumber함수안에 return convertToNumber라고 적혀있다.
return 명령문은 함수의 실행을 종료하고, 주어진 값을 함수 호출 지점으로 반환한다.
return convertToNumber
를 입력하면 함수가 그대로 출력될 뿐이다.
reference
function convertToNumber(anything) { return Number(anything); }
return함수와 number함수를 함께 쓸 수 있다.