JAVASCRIPT의 꽃, 함수
이론을 알아도 코드를 작성하는건 또 다른 일인 것 같다는 생각이 들지만
그래도 이론을 한번 정리해두면 좋을 것 같아 기록한다😀
🗂 아직 많이 부족해서 코드를 직접 많이 써보고 싶은데
일단 그 동안 배웠던 이론 기록해두기!!!
🔥 다시 작성하고 찾아보면서 예전엔 봐도 넘어갔던 부분이
이젠 오! 이거 괜찮다~ 하는 부분들이 생긴다 뿌듯!
📚 잘 모르지만 일단 꾸준히 해보기, 모일꾸
자바스크립트 함수에서
기본적으로 알고 있어야할 원리 11가지
함수에서 중요한 부분 중 하나는 "함수를 제대로 선언하는 것"이다
HTML,CSS와는 성격이 달라 자바스크립트는 웹사이트의 동작을 넣기 위함이기 때문에
함수명 만들 때는
✏️직관적으로! : clickScroll, isName
✏️동사형태로! : isConent, doItems
작성하는 것이 좋다
자바스크립트 언어의 특성상 type이 분명하게 나뉘어져있지 않기 때문에 조심해야한다 (이 부분을 보완하기 위해 typescript가 나왔으니 앞으로 배울게 많다 ☻☻☻)
✏️premitive : 메모리에 값이 바로 저장되어지고
✏️object : 레퍼런스에 값이 저장되어 메모리에 할당되는 형태로 저장된다 따라서 object객체의 내용을 바꿔줄 수 있다
아래 그림에 있듯이 primitive형태는 레퍼런스자체는 자물쇠로 잠겨있어 수정이 불가하지만 그 안의 object는 참조해오는 형태이기 때문에 수정이 가능한 점 꼭 기억...!!
재할당해서 값을 내야하는데 당당하게 const로 선언해놓았던 나 반성하쟈🫠
function (매개변수 = a) {
진행할 logic...
}
매개변수에 =연산자를 활용하여 default값을 지정해놓을 수 있습니다
알고리즘 문제풀 때 예시 답안에서 자주 보이던 "..."
저도 이번에 제대로 알게되었네요!
function printAll(…args) {
진행할 logic...
}
위 코드에서 매개변수 (...args)는
이 매개변수를 배열로 만든다는 것을 의미합니다.
값을 반환하되 배열로 가공해서 받고 싶을 때 활용!!
이 방법 외에도
for ( of ) 또는 forEach를 통해 배열로 만드는 것도 가능한 점 참고하면 도움이 될 것 같습니다^^
유튜브에서 만난 드림코딩의 앨리님은 이 한마디로 정리해주셨는데 이해가 쏙쏙..
1) global varialble : 전역변수
2) local variable : 지역변수
2가지가 있고 함수를 작성한 후 console.log 또는 값을 반환할 떄
함수 안에서 반환했다면 지역변수, 밖에서 반환했다면 전역변수이다.
예를 들어 부모 for문 안에 자식 for문을 돌릴 때
자식은 부모의 함수 또는 함수명을 그대로 가져와서 사용할 수 있지만
부모가 자식의 것을 가져와서 사용할 수는 없다!!
return을 해서 값을 받을 수 있음
(없다고 해도 return undefined되어있다고 생각하면 됨)
if문을 사용할 때 if-else if - else순으로 작성할 수 있지만
function hello(user) {
if ( user.point > 10) {
해당될 때 실행할 logic…
}};
그러나! 이렇게 이어서 작성하는 것 보다는!
function hello(user) {
if ( user.point > 10) {
return;
}
해당될 때 실행할 logic…
};
어렵게 생각하지 않아도 된다 function의 매개변수를 할당해서 return될 수 있는 성질이 있다는 의미이다
위 성질이 가능할 수 있는 이유는?
anonymous function.(함수표현) : 할당 이후 부터 사용 가능
nameed fuunction (함수선언) : 호이스팅이 가능하다
(함수가 선언되기 이전에 호출되어도 가능 선언된 곳을 제일 위로 올려주는 의미임)
콜백 함수를 사용할 때는 이처럼 작성하면 된다
콜백 함수는 "콜백함수라는 이름이 있었어?? 당연하거 아니야?"할 정도의 내용이긴 하지만
일단 콜백이라는 이름으로 있었다는 것... ^^
앞으로 더 공부하다보면 더 깊게 이해할 수 있게 되길....
function 함수이름(answer, printYes, printNo){
실행되어야 할 logic...
}
const simpe = function() {
console.log(‘hello’);
}
위 함수를 화살표함수로 바꾼다면? (function을 빼고 매개변수 옆에 '=>' 추가 해주기
=> const simple = () => console.log(‘hello’);
함수 자체를 바로 선언하고 싶을 때는 함수 자체를 ( )를 통해 해결할 수 있습니다
실무에서 얼마나 사용하는지는 잘 모르지만 !
function (매개변수) {
내용 ...
}
위 함수자체를 ()로 묶어서 사용하는 방법이다
(function (매개변수) {
내용 ...
})();