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
반응형

'코딩일지 > WEB' 카테고리의 다른 글

js 기초4  (2) 2023.01.01
js 연습1  (0) 2023.01.01
js 기초2  (0) 2023.01.01
js 기초  (0) 2023.01.01
요소 정렬 방법  (0) 2023.01.01

+ Recent posts

">