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로 구성
- 오브젝트는 한 공간에 넣기에는 너무 크기 때문에 각각 키마다 메모리가 따로 할당되며, 이 키들을 묶어서 가르키는 주소가 있음. 그 주소를 변수에 할당
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
'프로그래밍 언어 > Javascript' 카테고리의 다른 글
3. 연산자 | boolean의 모든 것 && 연산자 (0) | 2021.08.26 |
---|---|
2. 함수 | 함수 정의, 호출, 그리고 콜백함수 (0) | 2021.08.26 |
자바스크립트 함수 기본편 (0) | 2021.08.25 |
async 와 await 그리고 유용한 Promise APIs (0) | 2021.08.25 |
프로미스 개념 / 콜백 지옥 코드 수정 (0) | 2021.08.24 |