자바스크립트 함수정리

SunnyMoon·2020년 5월 17일
1
  • function 이라는 단어 사용
 function hello1(){
	
	console.log('hello1');

}
  • function 은 객체중의 하나 ⇒ 내장객체

✔ 선언적 function

  • 함수도 객체의 한 종류이다
    • 함수의 매개변수 선언
function hellow(name){
 
	console.log('hello2',name);

}
  • 함수의 리턴
function hello3(name) {

	return `hello ${name}`;

}

✔ 익명함수를 만들어 변수에 할당

  • 함수를 만들때 사용하는 키워드
    • 함수를 변수에 할당할 수 있다.
const hellow1 = function( ) {

	console.log('hello1')

}

const hello2 = function(name){
	
	console.log('hello2' ,name);

}

const hello3 = function(name) {

	return `hellow ${ name } `
}

✔선언적 function 과 익명함수 변수 할당의 차이

선언적 방식으로 선언하게 되면 호이스팅되어 사용이 된다.

익명함수의 경우 var로 선언하게 되면 오류 발생 - 호이스팅과 동시에 오류가 발생한다

익명함수 const로 선언하게 되면 호이스팅의 문제 발생하지 않는다

✔생성자 함수로 함수를 만드는 방식

const hello = new Function () ; 
const sum = new Function ( 'a' , 'b', 'c', ' return a+b+C ');

console.log( sum(1,2,3));

// 6이 출력 
//마지막에는 함수의 바디값을 문자로 넣는다 
  

✔function 선언 방식과 new function 방식의 차이점

global a= 0;

{ 
	const a = 1;
	const test = new Function ( 'return a `);

	console.log(test());

}
// a =0 출력 . {} 안의 상위 scope에 접근이 불가하다
//전역 변수로 설정을 해준 값만 인식하게 된다

{

	const a =2 ;
	const test = functino (){
		return a;
};
 console.log(test());
}

// a = 2 출력

✔arrow funtion

const hello1 =() => {
	console.log(`hello`);
}

//항상 익명함수로 사용해야한다
//선언적 방식은 불가
//매개변수가 한개일때 , 괄후를 생략 가능하다

const hello2 = name => { 
	console.log (name)

};

const hello3 =(name,age)=>{
	console.log(name,age)
};

//함수의 리턴 , 함수를 실행하면 얻어지는 값

const hello4 = name =>{
 return `hello4 ${name}`;
};

// { } 괄호 생략 가능
const hello5 = name => `hello5 ${name}`;

✔new 함수(); 생성자 함수

  • function 키워드를 이용해 만들어진 함수이다
function Person (name, age) {

	this.name = name;
	this.age = age;
}

const p = new Person ('mark',37);

console.log( p, p.name, p.age);

// {name:'mark', age: 37} , 'mark', 37 출력 

const a = new Person ('anna',26);

console.log(a,a.name,a.age);

// {name:'anna', age: 26} , 'anna', 26 출력 

const Cat = (name, age)=>{
	this.name =name;
	this.age= age;
}

const c = new Cat('냥이',1);

// arrow funtion 에서는 this라는것이 생성되지 않는다
// 에러를 발생시킨다.


  • 함수를 호출하면 함수를 만들어서 리턴
function plus(base){
	return function(num){
		return base+num;
	}
}

const plus5= plus(5);

console.log(plus5(10));

//15값이 출력
  • 함수를 인자로 하여 함수를 호출
function hello(c) {
	console.log('hello');
	c();
}

hello(function (){
	console.log('콜백');
});

//hello, 콜백 출력
// hello를 호출하고 나면 console.log('hello') 먼저 출력
// c() 함수 호출 console.log('콜백')출력
profile
프론트앤드 개발을 공부하는 중입니다:)

0개의 댓글