01. 변수 : 데이터 저장

변수는 데이터를 저장하는 저장소입니다.

{
    var x = 100;    //변수 x에 숫자 100을 저장함
    var y = 200;    //변수 y에 숫자 200을 저장함
    var z = "javascript";   //변수 z에 문자 "javascript"를 저장함

    console.log(x);
    console.log(y);
    console.log(z);
}
결과 확인하기
100
200
javascript

02. 변수 : 데이터 저장 + 데이터 변경

변수는 데이터를 저장할 수도 있지만 변경도 가능하다.

 {
    let x = 100;
    let y = 200;
    let z = "javascript";

    x = 300;
    y = 200;
    z = "react";

    console.log(x);
    console.log(y);
    console.log(z);
} 
결과 확인하기
300
200
react

03. 변수 : 데이터 저장 + 데이터 변경 + 데이터 추가

변수는 데이터를 저장하고, 변경하고, 추가할 수 있습니다.

 {
    let x = 100;
    let y = 200;
    let z = "javascript";

    x += 300;   // x = x + 300
    y += 400;
    z += "react";

    console.log(x);
    console.log(y);
    console.log(z);
}
결과 확인하기
400
600
javascript

연산자 : 변수로 연산이 가능하다.

변수를 이용해서 연산이 가능하고, 연산에는 산술연산자, 대입연산자, 비교 연산자, 논리 연산자, 비트 연산자, 상황 연산자가 있다.

04. 변수 : 지역변수 + 전역 변수(스코프)

변수는 데이터를 저장하고, 변경하고, 추가할 수 있습니다.

 {
    let x = 100;            //전역변수
    let y = 200;            //전역변수 //함수안에 있지 않아도 식이 먹힘

    function func (){
        let x = 100;        //중복이어도 함수 안에 있으면 다른 변수로 계산 //지역 변수
        let y = 200;        //let이 없으면 전역변수로 계산(ex y=100)
        z = "javascript";   //전역변수
    
        console.log("함수안" + x); 
        console.log("함수안" + y); 
        console.log("함수안" + z); 
    }
    func();

    console.log("함수밖" + x);
    console.log("함수밖" + y);
}
결과 확인하기 함수안100
함수안200
함수안javascript
함수밖100
함수밖200
함수밖javascript

05. 상수 : 데이터 저장 + 데이터 변경불가

상수는 데이터 저장은 가능하나 변경은 불가능합니다. 상수(const)는 이미 선언한 상수에 대해 중복 선언이 불가능하며 상수의 값을 재지정할 수도 없습니다.

 {
    const x = 100;
    const y = 200;
    const z = "javascript";

    x = 300;    //Assignment to constant variable.
    y = 400;
    z = "react";

    console.log(x);
    console.log(y);
    console.log(z);   //Assignment to constant variable
}
결과 확인하기
//Assignment to constant variable
//Assignment to constant variable
//Assignment to constant variable

06. 배열 : 데이터 저장(여러개): 표현방법1

배열의 기본 입력형식은 대괄호([ ])를 사용합니다.

{
    const arr = new Array();
    arr[0] = 100;
    arr[1] = 200;
    arr[2] = "javascript";
    
    console.log(arr[0]);
    console.log(arr[1]);
    console.log(arr[2]);
}
결과 확인하기
100
200
javascript

07. 배열 : 데이터 저장(여러개): 표현방법2

같은 내용을 보다 간략하게 한줄로 나타낼 수 있습니다.

{
    const arr = new Array(100, 200, "javascript");

    console.log(arr[0]);
    console.log(arr[1]);
    console.log(arr[2]);
}
결과 확인하기
100
200
javascript

08. 배열 : 데이터 저장(여러개): 표현방법3

new Array를 생략하여 데이터 값을 나타내는 형식입니다.

{
    const arr = [];
    arr[0] = 100;
    arr[1] = 200;
    arr[2] = "javascript"
     console.log(arr[0]);
     console.log(arr[1]);
     console.log(arr[2]);
}
결과 확인하기
100
200
javascript

09. 배열 : 데이터 저장(여러개): 표현방법4

new Array를 생략한 후 한 줄로 간략화한 형식입니다.

{
    const arr = [100, 200, "javascript"];
            
    console.log(arr[0]);
    console.log(arr[1]);
    console.log(arr[2]);
}
결과 확인하기
100
200
javascript

10. 객체 : 데이터 저장(키와 값): 표현방법1

객체란 여러가지 원시 유형을 하나로 묶은 것으로 obj로 표현합니다.

{
    const obj = new Object();
    obj[0] = 100;
    obj[1] = 100;
    obj[2] = "javascript";

    console.log(obj[0]);
    console.log(obj[1]);
    console.log(obj[2]);
 }
결과 확인하기
100
200
javascript

11. 객체 : 데이터 저장(키와 값): 표현방법2

대괄호와 숫자를 제외한 문자로도 표시할 수 있습니다.

{
    const obj = new Object();
    obj.a = 100;
    obj.b = 200;
    obj.c = "javascript";

    console.log(obj.a);
    console.log(obj.b);
    console.log(obj.c);
 }
결과 확인하기
100
200
javascript

12. 객체 : 데이터 저장(키와 값): 표현방법3

중괄호를 사용하여 new object태그를 생략하여 표현할 수 있습니다.

{
    const obj = {};
    obj.a = 100;
    obj.b = 200;
    obj.c = "javascript"

    console.log(obj.a);
    console.log(obj.b);
    console.log(obj.c);
 }
결과 확인하기
100
200
javascript

13. 객체 : 데이터 저장(키와 값): 표현방법4

한줄형식으로 데이터를 나타낼 수 있지만 키와 값을 함께 입력해야 합니다.

{
    const obj = {a:100, b:200, c:"javascript"};
            
    console.log(obj.a);
    console.log(obj.b);
    console.log(obj.c);
}
결과 확인하기
100
200
javascript

14.객체 : 데이터 저장(키와값) : 표현방법5 : 배열안에 객체

배열 안에 키값을 입력하여 객체를 포함시킬 수 있습니다.

{
    const obj = [
                {a:100, b:200},
                {c:"javascript"}
    ];

    console.log(obj[0].a);
    console.log(obj[0].b);
    console.log(obj[1].c);
}
결과 확인하기
100
200
javascript

15.객체 : 데이터 저장(키와값) : 표현방법6 : 객체 안에 배열

객체안에 배열을 포함시킬 수 있습니다. 배열의 인덱스는 0부터 시작하는 것을 주의해줍니다.

{
    const obj = {
        a: 100,
        b: [200, 300],
        c: {x: 400, y: 500},
        d: "javascript"                 
    };

    console.log(obj.a);
    console.log(obj.b[0]);              
    console.log(obj.b[1]);
    console.log(obj.c.x);
    console.log(obj.c.y);
    console.log(obj.d);
}
결과 확인하기
100
200
300
400
500
javascript

16.객체 : 데이터 저장(키와값) : 표현방법7

변수나 상수를 포함하여 입력할 수 있습니다.

{
    const a = 100;
    const b = 200;
    const c = "javascript";

    const obj = {a, b, c};

    console.log(a);
    console.log(b);
    console.log(c);
}
결과 확인하기
100
200
javascript

17.객체 : 데이터 저장(키와값) : 표현방법8

객체 안에는 함수(실행문)을 포함하여 입력할 수 있습니다.

{
    const obj = {
        a: 100,
        b: [200, 300],
        c: "javascript",
        d: function(){
            console.log("javascript가 실행되었습니다.");
        };    
        e: function(){
            console.log(obj.c + "가 실행되었습니다.");
        };
        f: function(){
            console.log(this.c + "가 실행되었습니다.")
        };
    };
        console.log(obj.a);
            console.log(obj.b[0]);
            console.log(obj.b[1]); 
            console.log(obj.b[2]);  
            console.log(obj.c);
            obj.d();
            obj.e();
            obj.f();
}
결과 확인하기
100
200
300
undefined
javascript
javascript가 실행되었습니다.

# 연산자(전치, 후치) 예제


1.
    var scor = 10;
    // ++score;        //11
    // score++;        //12

    var result = score++; //11

    console.log(result, score);     //10, 11 result의 우선순위 때문에 더해진 스코어보다 먼저 나온다.
    
2.
    let hap, j, k, l;
    j =k = l = 1;
    hap = ++j + k++ + ++l;  

    console.log(hap)   //k++ 후치가 있기 때문에 =보다 우선순위가 낮아서 hap의 계산이 안된다. //5
    console.log(j);    //계산이 끝난값이 나옴 //2
    console.log(k);    //2
    console.log(l);    //2

3.
    for(let i=0; i<10; i++){
        sum += i
    }

    for(let i=10; i>0; i--){
        sum += i
    }
    //위 두개의 for문은 같은 값이다.

4.
    let a =1, b=2, c=3, result;
    result = ++a + b++ + ++c;

    console.log(result);
    console.log(a);
    console.log(b);
    console.log(c);

    let x = 7, y = 7, result;
    
    result = x > y ? ++x : y--; //true면 true만(++x) 해석하고 false면 false만(y--) 해석한다(한가지는 실행x)

    console.log(result);  //7
    console.log(x);         //7
    console.log(y);         //6

5.
    let a =1, b=2, c=3, result;
    a=20, b=30, c=30;

    result = a < b ? b++ : --c; //--c는 실행x

    console.log(result);  //30
    console.log(a);     //20
    console.log(b+c);   //60
    console.log(c);     //30

6.
    let num1 = 16, num2 = 40;
    let a = num1++;
    let b = --num2;

    console.log(a+b);   //55

#비트 연산자

{
    {
        let a = 9;
        let b = 11;
        let c = a ^ b;

        console.log(c);
    };
    {
        let num1 = 16, num2 = 80;
        let result;

        result = num1 > num2 ? num1 & num2 : num1 ^ num2;

        console.log(result);
    };
};
결과 확인하기
2
64

비트 연산자 종류

&(AND연산자) : 두 비트가 모두 1일 경우에만 결과가 1이된다.
|(OR연산자) : 두 비트 중 하나 이상이 1일 경우 1, 둘 다 0인 경우 0이된다.
^(XOR연산자) : 두 비트가 서로 다른 경우 1, 같은경우 0이 된다.