이번 포스팅은 자바스크립트에서 사용되는 변수 선언 타입과 데이터 타입에 대한 이해! 그리고 dynamic Typing에 대한 이해를 해보려 한돠!
1. 변수 - rw(read/write)
📌 let (added in ES6)
//let (added in ES6)
//global name은 블럭 안, 블럭 바깥에서 모두 사용된다.
// app이 실행되고나서부터 끝날때까지 계속 메모리에 유지되는 내용이니
//최소한으로 사용하는 것이 좋다!
let globalName = "global name";
//block scope
//블럭 내의 내용들은 블럭 바깥에서 접근이 불가능하다!
{
let name = "sieun";
console.log(name);
name = "hello";
console.log(name);
}
📌 var
var는 ES5까지 쓰이던 아이인데 쓰지마세요
쓰지 말아야하는 이유
- var는 변수가 선언되기 이전에 사용이 가능하다. = var hoisting!
//available
age = 4;
var age;
//Error!
age = 4;
let age;
- block scope이 없음: 블럭안에서 변수를 선언해도 어디에서나 var를 읽을 수 있다. ⇒ 규모 있는 프로젝트에서 위험이 커짐
✏️ Hosting 이란?
호이스팅은 어디에 선언됐냐에 상관없이 선언을 가장 위에로 옮겨주는 것!
📌 Constant, r(read only)
한번 할당하면 값이 절대 바뀌지 않아요!
Immutable data types: primitive types, frozen objects (i.e. object.freeze())
Mutable data types: all objects by defauly are mutable in JS
favor immutable data type always for a few reasons
- security : 해커들이 값을 다른 값으로 변경하게 하는 것을 막을 수 있다.
- thread safety: thread가 다양하게 돌아가고 있는데, thread가 동시에 변수에 접근해서 값을 변경하는 경우가 생기고 이것은 굉장히 위험한 일!
- reduce human mistakes: 내가 코드를 변경하거나, 다른 사람이 코드를 변경하는 경우에도 실수를 방지할 수 있따!
2. Variable Types
✔️ Primitive-type: 더이상 작은 단위로 나눠질 수 없는 한가지 아이템
single item: number, string, boolean, null, undefined, symbol
✔️ boolean
false: 0, null, undeined, NAN, ‘ ‘
true: any other value
✔️ Object-type: 싱글 아이템을 여러가지로 묶어서 하나로 관리할 수 있는 것
box container
const sieun = { name: "sieun", age: 25 };
sieun.name = "ssinee";
✔️ Function:
first-class function: 함수도 다른 데이터 타입처럼 변수에 할당이 가능하다!
function을 return 하거나 parameter로 넘기는 것이 가능함
3. Dynamic typing : dynamically typed language
let text = 'hello';
console.log(text.charAt(0));
console.log(`value : ${text}, type: ${typeof text}`);
text = 1;
console.log(`value : ${text}, type: ${typeof text}`);
text = '7' + 5;
console.log(`value : ${text}, type: ${typeof text}`);
text = '8' / '2';
📌 String Concatenation
console.log("my" + "cat");
console.log("1" + 2);
console.log(`string literals: 1 + 2 = ${1 + 2}`);
TypeScript: Javascript 위에 Type이 더 올려진 아이!
- 유용한 사이트
- JavaScript
👍 해당 포스트는 드림코딩 엘리의 유투브 강의를 보고 정리한 내용입니다.
'Computer Language 🗣 > JavaScript' 카테고리의 다른 글
[JavaScript] Arrow Function, 함수의 선언과 표현 (0) | 2021.08.11 |
---|---|
[Javascript] 자바스크립트 연산, 반복문 (0) | 2021.08.10 |
[Javascript] 콘솔 출력 && async와 defer의 차이점 (0) | 2021.08.10 |
[JavaScript] Javascript: 브라우저의 역사 (0) | 2021.08.10 |
[자바스크립트(Javascript)]Object에서 특정 값만 추출하여 List 만드는 방법 (0) | 2020.11.25 |
댓글