2024 글로컬 청년취업사관학교/TIL

TIL - [DAY 7]

cr.kl_ 2024. 7. 3. 00:12
//함수
        function sample() {
            console.log('ㅋㅋㅋㅋ')
        }

        function 함수이름() {
            실행 코드
        }

        함수이름(); //->호출해 출력되도록
        sample();

        // a와 b는 더하기 함수의 매개변수(parameter)
        function 더하기(a, b) {
            console.log(a + b);
        }

        더하기(1, 100); //1 + 100 -> 101출력

        // function 더하기2(a, b) {
        //     return a + b; //리턴값
        // }

        // 더하기2(100, 200) //console창이 없으니 안떠

        // console.log( 더하기2(100, 200) ); //300

        function 인사(이름) {
            console.log('안녕? 나는' + 이름 + '야.'); //이름은 매개변수
        }

        인사('일분이'); //안녕? 나는 일분이야.

        function sample() {
            return;
            console.log('ㅋㅋㅋㅋ')
        }

        sample();
        //return - 함수 종료 후 실행하는 곳으로 돌아가 => 함수 실행하지 않고 돌아가니 값이 없어

        var a = 100;
        function sample() {
            if (a > 0) {
                return;
            }
        }
        console.log('ㅋㅋㅋㅋ') //0이 100보다 작은게 맞으니 return

        var a = 100;
        function sample() {
            if (a < 0) {
                return;
            }
        }
        console.log('ㅋㅋㅋㅋ') //0이 100보다 큰게 틀리니 출력

        function 더하기2(a, b) {
            return a + b; //리턴값
        }

        더하기2(100, 200); //console창이 없으니 안떠

        console.log( 더하기2(100, 200) ); //300
        //return값으로 뱉어 만들어 주는게 없으면 그 값은 사용 불가능 -> return값을 사용할 일이 있다면 return값을 만들어 줘야함!
        //세팅만 한다면 상관없게찌


        //변수의 유효범위(Scope)
        var a = 100; //전역변수

        // console.log(a);

        function sample1() {
            console.log('sample1에서 출력한' + a);
        }
        function sample1() {
            var b = 200; //지역변수
            console.log('sample1에서 출력한' + b);
        }
        sample1(); //출력 잘됨
        /* 함수밖에서 전역에서 선언한 변수는 모든 애들이 알아 공유되 사용가능
        하지만 함수안, 지역에서 선언한 변수는 그 함수 안에서만 사용 가능 */

        var a = 100;
        function sample1() {
            var a = 'sample1 내부의 a';
            var b = 200;
            console.log(a);
        } //함수안의 변수 먼저 찾고 그 안에 없다면 밖의 변수를 찾아 적용
        //함수는 방으로 생각

        var a = 100;
        function sample1() {
            var a = 'sample1 내부의 a';
            var b = 200;
            console.log(a);

            function sample2() {
                var c = 10000;
                console.log(b);
            }
            console.log(c); //sample2안에 있는 것이라 sample1에서는 사용못한다
            sample2();
        }

        sample1(); //sample1안에 sample2가 있어 sample2는 sample1의 변수도 사용가능
        //함수 안에선 바깥의 변수 사용가능 하지만 밖에선 안의 변수를 사용하지 못한다

 

//객체
        var jejudo = {
            a: 100,
            b: 200,
            c: 300
        }; //객체 형태의 그룹화를 통해 전역변수의 남발을 막는다
        console.log(jejudo.c); //제주도변수의 c값 => 300

        /*var대신
        let 변할 수 있는 변수
        const 변할 수 없는 상수*/
        //let은 if문 안에 있으면 접근 못하고 var은 접근가능 (함수면 불가능)


        var person = {};
        person.name = '동네79'; //개체.속성 //속성(property)
        person.age = 12;
        person.introduce = function () {
            //이름이 필요없음 안줘도 돼
            console.log('안녕? 나는 동네79야. 나이는 12살이야.'); //매서드(method) 함수인 속성
        }

        console.introduce(); //console개체에 log속성에 접근
        //->안녕~ 출력

        var person2 = {
            name: 'Zena',
            age: 20,
            introduce: function () {
                console.log('안녕? 나는 Zena야, 나이는 20살이야.');
            }
        };
        person.introduce();
        person2.introduce(); //introduce들 출력

        var person = {};
        person.name = '동네79'; //개체.속성 //속성(property)
        person.age = 12;
        person.introduce = function () {
            //이름이 필요없음 안줘도 돼
            console.log('안녕? 나는' + name + '야. 나이는 ' + age + '살이야.'); //매서드(method) 함수인 속성
        } //age는 정의 한적 없어 error(변수를 설정한적 없다. var age;), name은 빈문자열인 이미 정의돼 있는 변수라 error가 안뜬데...
       
        /*에러 해결*/      
        var person = {};
        person.username = '동네79'; //개체.속성 //속성(property)
        person.age = 12;
        person.introduce = function () {
            //이름이 필요없음 안줘도 돼
            console.log('안녕? 나는' + this.username + '야. 나이는 ' + this.age + '살이야.'); //매서드(method) 함수인 속성
        } //함수안에서 this가 가리키는 것은 이 매서드를 실행한 주체 객체이다

       
        //생성자(constructor) - 맨앞글자를 대문자로 약속~
        function Person(username, age) {
            this.username = username;
            this.age = age;
            this.introduce = function () {
                console.log('안녕? 나는' + this.username + '야, 나이는 ') + this.age + '살이야.');
            }
        }
        //인스턴스(instance)
        var p1 = new Person('동네79', 20);
        var p2 = new Person('일분이', 3);

        Person('동네79', 20); //=>윈도우 전역개체 인식, this인식 X new를 꼭 써야해

        p1.introduce();
        p2.introduce();

주말에 할것

- JavaScript 월, 화 수업 복습

- HTML/CSS 익숙해지기 -> 포폴 구상 틀 만들기

- 홈페이지 만드는거 클론코딩(?) 영상 보기

- 과제 안올린것 올리기

- Python(언제 보지..?)

'2024 글로컬 청년취업사관학교 > TIL' 카테고리의 다른 글

TIL - [DAY 9]  (0) 2024.07.03
TIL - [DAY 8]  (0) 2024.07.03
TIL - [DAY 6]  (0) 2024.07.02
TIL - [DAY 5]  (0) 2024.06.28
TIL - [DAY 4]  (0) 2024.06.28