Script
데이터타입 본문
1.variable
let name='A';
cosole.log(A); //A
javascript에서는 변수명을 선언할때 앞에 let을 사용한다
let name까지가 선언이고, 그 뒤에 ='A'가 할당이다.
이제부터 name이라는 변수명 안에는 A라는 값이 할당된것이다.
let name='A';
cosole.log(A); //A
name='hello';
console.log(name); //hello
이처럼 let을 이용한 변수는
얼마든지 값의 변경이 가능하다.
단,name='hello'처럼 재할당은 가능하지만
let name='hello'같이 재선언은 불가능 하다는 점에 유의해야한다.
var을 쓰면 안되는 이유
let과는 다르게 var은 잘못된것을 오류라고 답해주지 않는다.
ex)변수를 선언하지도 않고 콘솔출력을 했을때
let은 오류가 뜨지만 var은 오류가 뜨지않고 undefined가 뜬다
또한 block scope를 무시해버리는 단점도 가지고 있다.
2.block scope
{let name='A';
cosole.log(A); //A
name='hello';
console.log(name);} //hello}
console.log(name);//XXX
{}안에 입력되어 있는 것들을 말한다
이 안에 들어있는 것들은 밖에서 사용하려해도 하지못한다.
global scope
반대로 {}안에서 쓰지않고 바로 사용하는 것들을 gloabal scope라고 한다.
gloable scope는 어느곳에서나 접근이 가능하다.
많이 쓰면 과부하가 걸릴 수 있기 때문에 과용해서는 안된다.
3.const
let과는 반대의 위치에 있는 const는 let과는 다르게
변수안에 있는 값을 변경할수 없게 한다.
보안상으로 강점을 가지며, 개발자의 실수를 방지해줄 수 있다는 장점이 있다.
4.variable types
primitive,single item:number,string,boolean,null,undefined,symol
숫자의 경우 c언어는 short,int,long,float,double...등으로 선택지가 여러가지지만
js는 number 하나로 모든 숫자를 총괄한다.
let a=12;
let b=1.2;
처럼 number를 생략해도 무관하며, 정수와 실수를 가리지 않고 number만 사용한다.
(type script의 경우 number를 생략하지 않고 써줘야 한다)
문자의 경우도 js의 편의성이 높다.
다른 언어들과 다르게 js는 문자 하나든 문자열이든 string 하나만 사용하고 마찬가지로 ts아닌 js에서는 생략가능하다.
template literals
ex)`hi ${John}`;
=>hi + $안에 있는 값(띄어쓰기 포함하여 그대로 출력)
편의성을 위해 사용한다
안에 연산자를 입력하면 그에따른 결과가 출력된다
boolean
0,null,undefined,NaN,' ' 얘네들은 모두 false값
나머지들은 true값
null,undefined
null은 값을 의도적으로 비워놓고 싶을때 사용하며,
undefined는 선언만 하고 값이 할당되지 않은 상태이다.
(의도성의 차이)
symbol
const symbol1 = Symbol('id');
const symbol2 = Symbol('id');
symbol안에 있는게 똑같기 때문에 symbol1과 symbol2가 같다고 생각하기 쉬우나,
symbol은 값이 중복되어도 그 값을 고유한 값으로 만들어 주기 때문에
symbol1과 symbol2의 값은 같지 않다.
추가적으로 symbol을 출력할때는 symbol1.description 이런식으로
뒤에 .description을 붙여줘야 한다
++object
const A={name:'J',age:'20'};
객체는 이렇게 가볍게 넘어갈게 아니지만 여기서는 이정도로만.
A가 const이므로 A가 가르키는 주소값 자체는 변경이 불가능 하지만,
A안에 있는 name과 age라는 변수들은 이것에 영향받지 않음
따라서 이름을 S라고 바꿀수도 있고 나이를 21로 바꿀수도 있음
5. infinity, NaN(not a number)
const infinity=1/0;
const negativeInfinity=-1/0;
const NaN = 'not a number'
숫자를 0으로 나누면 infinity
-값을 0으로 나누면 - infinity
숫자가 아닌 값을 넣었을때는 NaN이다.
나중에 DOM을 배울때 필요로 하니 알아만 두자.
'Javascript' 카테고리의 다른 글
| object란? (0) | 2022.06.14 |
|---|---|
| class와 object (0) | 2022.06.14 |
| 함수 (0) | 2022.06.12 |
| 연산자, if, 반복문 (0) | 2022.06.11 |
| async vs defer (0) | 2022.06.11 |