ex)
<script> // undefined를 리턴하는 함수 function test() { console.log("test() 호출됨"); } </script>
함수의 리턴타입이 정해지지 않은 채 호출하게 되면, 함수내에 있던 내용이 실행되고 "undefined"가 리턴된다.
ex)
<script> // string type을 리턴하는 함수 function getName() { console.log("getName() 호출됨"); return "홍길동"; } </script>
getName() 호출시, "홍길동"이 리턴된다.
ex)
<script> //number type을 리턴하는 함수 function getNum() { console.log("getNum() 호출됨"); return 999; } </script>
getNum() 호출시, 999가 리턴된다.
ex)
<script> // boolean type을 리턴하는 함수 function isEven() { console.log("isEven() 호출됨"); return true; } </script>
isEven() 호출시, true가 리턴된다.
ex)
<script> // object type을 리턴하는 함수 function getMember() { let mem = {num: 1, name: "홍길동", addr: "용인시"}; return mem; } </script>
getMember() 호출시, {num: 1, name: "홍길동", addr: "용인시"}가 리턴된다.
앞서 Object type은 {key: value. key: value}의 형태로 표현한다했다. 따라서 다르게 표현할 수도 있다.
ex)
let myObj = { getData:function() { // value로 function() {}이 들어온것, myObj.getData는 참조이고 myObj.getData()는 함수호출이다. let data = {num: 1, name: "조익준"}; return data; }, };
myObj.getData;를 호출하면 함수를 참조할뿐이지만, myObj.getData();를 호출하면
data, 즉 num: 1, name: "조익준"이 호출된다. 더 나아가 myObj.getData().num;을 호출하면 1이 호출된다.
ex)
<script> //array type을 리턴하는 함수 function getFriends() { let friends = ["히히", "주뎅이", "눈사람",]; return friends; } </script>
getFriends() 호출시, ["히히", "주뎅이", "눈사람",]이 출력된다.
Array type도 마찬가지로 [ ]로 표현하기 때문에 다르게 표현할 수 있다.
ex)
<script> let Eat = { foods: function() { let Favfoods = ["라면", "짜장면", "칼국수"]; return Favfoods; } }; </script>
Eat.foods();를 호출하면 ["라면", "짜장면", "칼국수"]이 출력된다. 또한 Eat.foods()[0]을 호출하면 라면이 출력된다.
Array type과 Object type을 리턴할 때, 헷갈릴 수 있는 개념이 있다. 정리하자면 다음과 같다.
document. >> let document = {}; 의 형식으로 추정할 수 있다. 구체적인 key와 value는 주어지지 않은 상태다.
document.querySelector // let document = {querySelector: }; 로 추정할 수 있고 key만 주어진 상태다.
document.querySelector() // let document = {querySelector: function() {return{}}; 로 추정할 수 있다.
document.querySelector().innerText // let document = {querySelector: function() {return {innerText: }};