web/back + front

js 기본 지식2

qkqhxla1 2017. 1. 31. 17:35

1. 아래처럼 변수에 함수를 할당할 경우 바로 실행이 가능하다.

var a = function (){
    console.log('aksdfjasfdjlk');
}();

근데 function a() {}같이 함수 선언시에는 안됨. 


2. 리스트가 파이썬처럼 편하다.

var a = [0, 1];
a[5] = 5;
a.push('rara');
console.log(a);

결과 살펴보기. 


3. 클래스같은 함수. 클래스인가?

var m = function(name){
    this.name = name;
};

m.prototype.get_name = function () {
    return this.name;
};

var mym = new m('cats!');
console.log(mym.get_name());

4. 유명한 클로저 루프 버그. 위 함수하고 아래 함수 따로따로 실행시켜보자.

function countSeconds(howMany) {
    for (var i=1; i<=howMany; i++) {
        setTimeout(function() {
            console.log(i); // 4 4 4 (-_-;)
        }, i*1000);
    }
};

countSeconds(3);

function countSeconds2(howMany) {
    for (var i=1; i<=howMany; i++) {
        (function(currentI) {
            setTimeout(function() {
                console.log(currentI); // 1 2 3 (^_^)
            }, currentI*1000);
        }(i));
    }
};

countSeconds2(3);

5. ??아래 출력문을 하나씩 주석처리하면서 실행시켜보자. 다른게 없는것 같은데 하나는 에러가 뜬다.

function a() {
    return
    {
        x:'y'
    };
}

function b() {
    return {
        y:'z'
    };
}

console.log(b()['y']);
console.log(a()['x']);

a함수에서 return뒤에 한줄을 내리고 리턴할것들을 정의하면 그것들이 리턴이 안된다; 반면 b함수는 y:'z'라는 사전을 리턴한다. 이상한 자바스크립트 문법...

'web > back + front' 카테고리의 다른 글

jquery 노드,스타일,속성,이벤트 다루기  (0) 2017.02.06
js 정규식 관련.  (0) 2017.02.03
css selector관련.  (0) 2017.02.02
es6 문법 정리  (0) 2017.01.31
js 기본 지식  (0) 2017.01.26