멋쟁이 사자처럼 FE 2기 - 28

임홍렬·2022년 5월 10일
0
post-thumbnail

220510


JavaScript 함수


함수

함수를 이용하면 중복 없이 유사한 동작을 하는 코드를 여러 번 호출할 수 있습니다.
<!-- 함수 -->
<p id="result"></p>
<script>
function myFunction(x,y){  //함수의 정의
	z = x + y  //함수의 기능
	return z;  //함수의 결과값
}
// 함수의 호출 
document.getElementById("result").innerHTML = myFunction(4,3);
</script>
용어번역의미
Parameter매개변수함수와 메서드에 입력 변수 이름
Argument전달인자, 인자, 인수함수와 메서드에 실제 입력되는 값
  • 파선아실(파라미터는 선언, 아규먼트는 실제 값)

for in

'객체'에 포함된 모든 프로퍼티에 대해  키 값만 출력하는 반복문을 수행한다.
const pocketmons = {
	피카츄 : 1,
	라이츄 : 2,
	파이리 : 3,
	꼬부기 : 4,
	버터플 : 5,
	야도란 : 6,
	피죤투 : 7,
	또가스 : 8,
	메타몽 : 9,
};

console.table(pocketmons);

// key 값 출력 
for ( let pocketmon in pocketmons) {
	console.log(pocketmon);
}

// value 값 출력
for ( let pocketmon in pocketmons) {
	console.log(`${pocketmons[pocketmon]}`);
}

for of

배열 역시 객체이므로 for in 문을 사용해도 된다. 하지만, for in 문은 배열 요소뿐만 아니라 불필요한 프로퍼티까지 출력될 수 있다.
for문보다 for of문이 훨씬 가독성이 좋다. 
반복 가능한 객체가 아니라면 for of 문을 쓸 수 없다. 
const languages = [ 'Java', 'Javascript', 'Python', 'Ruby', 'C', 'C++' , 'Node.js', 'Django'];

for (let lang of languages) {
	console.log(lang)
}

구조 분해 할당

?

지역변수

중괄호({}) 안에서 선언된 변수
선언된 지역변수는 선언된 지역 내에서만 유효하다.
해당 지역에서 선언되는 순간 메모리가 생성되고 해당 지역을 벗어나면 자동으로 소멸됩니다.

전역변수

특정 지역(중괄호) 밖에서 선언된 변수
지역과 관계없이 어느 곳에든 유효하다.
 코드가 시작되어 선언되는 순간 메모리가 생성되고 코드 전체가 끝날때까지 메모리를 차지하고 있습니다.
전역변수는 프로그램의 구조를 복잡하게 만들고 사용빈도와 상관 없이 프로그램이 끝날때까지 메모리를 차지하고있기 때문입니다. 따라서 전역변수를 사용하는 것은 신중해야합니다.

재귀함수

나를자꾸 호출하는 함수
반복문으로 구현할 수 있는 것은 재귀함수로 모두 구현 가능, 재귀함수로 구현 가능한 것은 반복문으로 대부분 구현(복잡도를 증가시키면 모두) 가능합니다.
function factorial(n){
	if(n >= 1){	
    	return n
    }
    return n * factorial(n-1)
}

call by value

값을전달하는것

// call by value는 값의 전달
let a = 1
function test(x){
x = 1000
}
test(a)
console.log(a)
VM17827:7 1

call by reference

// call by reference(실제로는 call by value)
let arr = [10, 20, 30]
function test2(x){
x[0] = 1000
}
test2(arr)
console.log(arr)
VM18206:7 (3) [1000, 20, 30]

function factorial(n){
if(n <= 1){
return n
}
return n * factorial(n-1)
}


지원하는 회사에서 유심히 보는 것들
프로젝트 경험, 오픈소스 경험, 출판 경험

profile
뜨내기 FE 개발자

0개의 댓글