일반적인 프로그래밍 언어 (c, python, java 등) 에서 사용하는 조건 및 제어문에 관해서 자바스크립트로 구현.

  • if(){}else{} 문

  • while() 문

  • for() 문

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// 절대값 함수 구현
function abs(x){
    if(x >= 0){
        return x;    
    }
    else{
        return -x;    
    }
}
 
abs(5);
>> 5
 
abs(-5);
>> 5
 
//==
 
// 팩토리얼 함수 구현(while) : n!
function factorial(n){
    var product = 1;
    
    while(n > 1){
        product *= n;
        n--;        
    }
 
    return product;
}
 
factorial(10);
>> 3628800
 
// ==
 
// 팩토리얼 함수 구현(for) : n!
function factorialUseFor(n){
    var product = 1;
    
    for( i = 2; i <= n; i++ ){
        product *= i;
    }
 
    return product;
}
 
factorialUseFor(10);
>> 3628800
cs


자바스크립트는 객체지향언어이지만, 우리가 생각하는 자바 언어와 같은 객체지향과는 다르다. 클래스를 정의하는 것에 있어서 아래를 살펴보자. 자바와 동일하게 객체를 생성할 때는 new 키워드와 함께 생성자 함수라는 것을 이용한다.


생성자 함수는 말 그대로 객체를 생성하기 위한 함수인 것이다. 해당 프로퍼티를 생성자 함수 내부에서 구현하고 해당 객체는 생성자 함수내에 구현된 내용에 따라 객체를 생성하고 메모리를 할당받는 것이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function Point(x, y){
    this.x = x;
    this.y = y;
}
 
// 객체 생성, 
// 객체를 생성하기 위해 생성자 함수를 이용
var p = new Point(11);
 
p;
>> Point {x: 1, y: 1}
 
// 생성자 함수 Point의 prototype객체에 함수를 
Point.prototype.r = function(){
    return Math.sqrt(
        this.x * this.x + this.y * this.y
    );
}
 
p.r();
>> 1.4142135623730951
cs


[ prototype 이해하기 ]

Posted by doubler
,