08
25
728x90
<!DOCTYPE html>
<html lang = "en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" consent="width=device-width, initial-scale=1.0" />
        <title>Document</title>
        <script src="js-basic/variable.js"></script>
    </head>
    <body></body>
</html>

변수

: 프로그래밍 언어에서 처리해야하는 데이터를 담을 수 있도록 해주는 것

1) primitive type

let 변수이름
let number = 2;
let number2 =number;

console.log(number);
console.log(number2);

number2 = 3;
console.log(number);
console.log(number2);

number2에 number의 값을 복사해서 전달한 것이기 때문에 number2의 값을 바꿔도 number의 값은 바뀌지 않음

2) object type

//object

   - number, string, boolean, null, undefinded을 제외한 모든 것

   - 최소한 1~2가지의 다양한 데이터를 한군데 묶어놓는 것

   - 함수도 오브젝트

   - 오브젝트는 key와 value로 구성

   - 오브젝트는 한 공간에 넣기에는 너무 크기 때문에 각각 키마다 메모리가 따로 할당되며, 이 키들을 묶어서 가르키는 주소가 있음. 그 주소를 변수에 할당

obj의 주소가 123이라고 가정

let obj = {name: 'ellie', age: 5};
//obj의 주소가 가르키는 곳에 name에 있는 값
console.log(obj.name);

let obj2 = obj; //obj2에 obj주소가 복사되어 들어감
console.log(obj2.name);

obj.name = 'james'; //obj와 obj2가 가르키는 주소가 같기 때문에 obj.name을 바꾸면 obj2.name도 바뀌게됨
console.log(obj.name);
console.log(obj2.name);

출력 결과

// const인 경우 primitive type와 object type

//let은 선언후에 값 변경이 가능
let a = 2;
a = 5;
a = 9;

//const는 값 변경 불가능
const num = 2;
//num = 5;

const constObj = {name: 'ellie', age: 21};
//constObj = {name: 'james', age: 30}; 불가능
constObj.name = 'james'; //가능 (const로 obj를 수정할 수 없게 잠근것이지 constObj주소가 가르키는 장소의 데이터를 잠근게 아니기 때문에 수정이 가능)

 

728x90
COMMENT