일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- c++
- 신경론
- 앤드류 테이트
- 티스토리사진한줄에 여러개
- Class1
- 어도비플래시서비스종료
- 티스토리사진
- 스팀에 돈 얼마나 썼지
- 자바스크립트 defer
- 롤에 돈얼마나썼지
- 가운뎃점 입력
- 자바메모
- 비주얼스튜디오 코드 글꼴
- 도선생님 신경론
- 티스토리 전체글수표시
- 스팀 사용 금액
- 백준
- 티스토리전체글수
- 어도비플래시삭제
- 도파 신경론
- 한글 가운뎃점
- 티스토리 코드블록
- 롤 현질얼마나 했는지보기
- 쿠르츠 게작트
- 스팀 돈얼마나 썼는지보기
- 언리얼
- 명언
- 게임 네트워킹
- 비주얼스튜디오 코드 폰트
- 롤 현질금액보기
- Today
- Total
Small Step
[JS] 공부 - 엘리코딩 JS 3 본문
이 영상을 보고 공부했습니다.
변수 Variable
자바스크립트 ES6부터는 let키워드를 사용하여 변수를 만든다.
let myname = 'small_step';
Block Scope
블럭을 이용하여 코드를 작성하면 블럭안의 코드를 볼 수 없다.
{
let myname = 'hello';
console.log(myname);
myname = 'vayne';
console.log(myname);
}
console.log(myname);
다음과 같이 블럭안에 선언된 변수를 호출하면
console.log가 되지 않는 모습이다.
블럭안에 있지 않고 밖에 선언된 변수를 global scope라고 한다.
어느 곳에서 나 접근이 가능하다.
글로벌한 변수들은 메모리에 계속 남아있다.
let을 사용하여 변수를 선언하자!!
var를 안 쓰는 이유?
var를 쓰면 값을 할당하지 않고도 출력이 되고, 선언하기 전에도 출력이 되는 이상한 현상이 일어난다.
이것을 var hoisting이라고 한다.
어디에 선언을 했는지 상관없이 선언한 것을 맨 위로 끌어올리는 것
move declaration from bottom to top
또 var는 Block Scope가 없다.
블럭의 영향을 받지 않는다.
변수 선언에는 let을 쓰자!!
상수 Constant
한 번 할당하면 값이 바뀌지 않는다.
값이 바뀌는 데이터를 Mutable라고 하고 변경이 불가능한 데이터 타입은 Immutable라고 한다.
상수는 값이 바뀌지 않는 Immutable이다.
값이 바뀌지 않는 상수를 쓸 때 얻을 수 있는 장점
1 보안 : 값이 바뀌지 않아서 보안에 도움이 됨
2 쓰레드 들이 동시에 값을 바꾸면 위험한 일이 일어날 수 있는데 상수는 바뀌지 않아서 안전
따라서 웬만하면 상수를 만들어서 쓰도록 하자!
데이터 타입 Variable type
어떤 데이터 타입이든 다음과 같이 분류된다.
primitive는 아이템이 하나인 것으로 숫자 string(문자열), boolen, null, undefined 등이 포함된다.
한 박스로 관리할 수 있게 해주는 것이 object(객체)이다.
자바스크립트에서는 function도 데이터 타입인데, first-class function은 function도
데이터 타입에 포함되어 변수처럼 쓸 수 있다는 뜻이다.
숫자 number
c언어와 자바에는 숫자만 해도 int, long, double, float 등등 엄청 많은 데이터 타입이 있다.
하지만 자바스크립트에서는 number 하나로 숫자 데이터 타입이 결정된다.
자바스크립트에서는 데이터 타입을 정의하지 않고도 선언이 가능하다.
let a = 12;
let b = 1.2;
그러나 타입 스크립트에서는 데이터 타입을 써줘야 한다.
let a: number = 12;
let b: number = 1.2;
특별한 숫자 값들
const infinity = 1/0;
const negativeInfinity = -1/0;
const nAn = 'not a number' / 2;
자바스크립트는 -2의 53승부터 2의 53승까지 표현이 가능한데
숫자 뒤에 n을 붙이면 bigInt가 된다.
최근에 나온 개념이기에 크롬과 파이어폭스에서만 사용 가능하다.
문자열 string
string
자바스크립트에서는 한 가지의 글자나 여러 가지 글자나 string타입으로 할당된다.
+ 기호를 사용해 문자열 합치기도 가능하다.
const brendan = 'brendan';
// ` template literals
console.log(`hi ${brendan}`);
`를 사용하여 문자열 안에 바로 문자열을 넣을 수 있다.
참과 거짓 bloolean
먼저
false값은 0, null, undefined, NaN, ' ' 등이 포함되어있고
true는 나머지 모든 값들이다.
null, undefined
이 둘은 서로 비슷한 거 같으면서도 다르다.
null은 선언된 변수 안에 null이라는 값이 있는 것이지만 undefined는 아예
값이 할당이 되지 않은 상태이다.
symbol
고유한 식별자가 필요할 때 쓴다.
같은 문자열이 할당되어있어도 고유하게 식별이 된다.
const symbol1 = Symbol('id');
const symbol2 = Symbol('id');
symbol은 그냥 출력하면 오류가 나니. description을 사용하여 문자열로 변환하고 출력해야 한다.
Dynamic typing
자바스크립트는 선언할 때 데이터 타입을 정하지 않고 할당된 값에 따라 데이터 타입이 정해진다.
let text = 'hello'; // string타입
text = 1; // number타입
text = '7' + 5; // 문자와 숫자를 더해서 string타입
text = '8' / '2'; // 숫자를 나눌 때 쓰는 나누기가 있으니 number타입
객체 object
const myblog = { name : 'small_step', post : 20};
myblog.post = 25;
객체 안에 변수를 정의할 수 있다.
이 변수들은 객체의 이름을 이용해서 접근하여 값을 할당할 수 있다.
'코딩 > JS' 카테고리의 다른 글
[JS] 공부 - 엘리코딩 JS 5 함수의 선언과 표현 (0) | 2021.02.01 |
---|---|
[JS] 공부 - 엘리코딩 JS 4 연산자와 반복문 (0) | 2021.01.28 |
[JS] 공부 - 엘리코딩 JS 2 (0) | 2021.01.06 |