728x90
반응형
// 함수의 호출
func1();
//1. 함수 선언문
function func1() {
console.log('this is func1');
}
// 2. 함수 리터럴
let func2 = function() {
console.log('this is func2');
}
func2();
// 3. funtion 생성자로 정의(객체 생성자를 호출: new 키워드 사용)
let func3 = new Function('a, b, c',`
console.log("this is func3");
console.log("test")`
);
func3(15);
// 4.화살표 함수 => 다른 언어의 람다식과 비슷함
let func4 = () => {
console.log('this is func4');
};
func4();
// 5. 즉시 실행 함수
let func5 = function(){
console.log('this is func5');
}();
// 일회용 함수
(function(){
console.log('this is func5');
})();
// 인수 : 함수에 전달하는 값
// 매개변수 : 전달받은 값을 저장하는 변수
// 반환값 : 함수 실행이 종료될 때 돌려주는 값(함수 자체의 값)
let arrow = (a, b, c, d) => {
console.log(a, b, c, d);
return true;
}
console.log(arrow(1, 2, 10, 100));
// 생략가능예시1
let arrow1 = a => true;
console.log(arrow1(1));
// 생략가능예시2
let arrow2 = a => console.log(a);
console.log(arrow2(100));
let person = {
'이름':'김성우',
'주소':'대구 동구',
'run': function(){ // 프로퍼티가 함수의 이름이 된다.
console.log('달리기를 시도합니다.')
}
};
person.run();
let a = 'b'; // 전역변수
print_info(person);
function print_info(객체){
let a = 'a'; // 지역변수
console.log(객체.이름);
console.log(객체.주소)
console.log('함수안:', a);
}
console.log('함수밖:', a);
let func = function(x){
test = 'test'; // let, var, const 안쓰면 전역변수가됨
console.log(x);
}
func(3);
console.log(test);
function testFunc(a, b, c, d){
if(a ===3){
return true;
}
return false;
console.log(a);
return 100;
console.log('test');
}
let result = testFunc(15);
console.log(`result : ${result}`);
// 중첩 함수 : 함수 내부에 함수가 존재하는 함수
// 중첩 함수의 내부함수는 중첩함수 내부에서만 호출 가능( 외부 함수의 기능을 톱는 역할)
function outerFunc(){
let x = 1;
function innerFunc(){
let y = 2;
console.log('내부함수는 : ', x+y);
}
return innerFunc;
}
let r = outerFunc();
r();
// 콜백 함수 : 함수를 인자로 받아, 함수내부에서 인자로 받은 다른 함수를 실행시키는 함수
function testFunc2(함수명){
함수명();
}
function 인자함수(a, b, c){
console.log('인자함수가 실행되었습니다.');
}
testFunc2(인자함수);
console.log(인자함수.name);
console.log(인자함수.length);
console.log(인자함수.prototype);
function say(인삿말, 직급){
console.log(인삿말 + ' ' + this.name + 직급);
}
let 강사 = { name : '김성우'};
say('안녕하세요', 강사,'강사님')
say.apply(강사, ['하이', '강사님!']);
say.call(강사, '하이', '강사님!');
let newFunction = say.bind(강사)
newFunction('하이', '강사님!');
function TEST(){
this.a = 'A';
this.b = 'B';
this.inner = function(){
console.log('inner');
}
console.log(`test: ${this.a}, ${this.b}`)
}
let t = new TEST();
console.log(t.a)
console.log(t.b)
t.inner();
728x90
반응형