[JS] 문법정리 > 타입과 변수
반응형
[JS] 문법정리 > 타입과 변수
자바스크립트의 특징
- 싱글스레드 이벤트 기반
- 다중 패러다임
- 다이나믹 타입
- 크로스 플랫폼
- Prototype 기반
표준 규격
- 자바스크립트 출시 1995
- ES1 - 1997
- ES3 - 1999
- ES5 - 2009
- ES6 - 2015
- ES Next - 2020~
- http://kangax.github.io/compat-table/es5/
타입과 변수
타입의 종류
Primitive Type(원시형)
- Number : 123 / NaN / Infinity
- Boolean : true / false
- String : "sangziii"
- Undefined : undefined
- Null : null
- Symbol : Symbol() ⇒ ES6
1. number
자바스크립트의 경우 모든 숫자를 64비트 부동 소수점 형태로 저장
c언어의 double 타입과 유사
var num = 9 / 2; // 4.5
2. string
문자 배열처럼 index를 이용해 접근 가능
한번 선언된 문자열은 읽기는 가능하나 수정은 불가능
var name = 'sangzi';
console.log(name[0]); // 's'
str[0] = 't';
console.log(name); // 'sangzi
3. null과 undefined
- 두 타입 모두 값이 비어있음을 의미
- 값이 할당되지 않은 변수는 undefined 타입, undefined 타입의 변수는 변수 자체의 값 또한 undefined
- 자바스크립트에서 undefined 는 타입 이자 값 을 나타낸다
// null타입 변수 생성
var nullObj = null;
typeof nullObj === null; // false
nullOjb === null; // true
- null 타입 변수인 nullObj의 typeof 결과는 null이 아니라 object
- 자바스크립트에서 null 타입 변수인지 확인하려면 일치 연산자(===) 를 사용해서 변수의 값을 직접 확인해야 함
Reference Type(참조형)
- Object : { name: 'sangzi', job: 'developer' }
- Array : [ 1, 2, 3 ]
- Function : function(){ ... }
- Date, RegExp 등의 Native 객체
타입 알아내기
typeof 연산자 : 주어진 값의 타입 이름을 문자열로 반환
typeof 942; // "number"
typeof {}; // "object"
typeof function(){}; // "function"
typeof "abcds"; // "string"
typeof []; // "object"
typeof Symbol(); // "symbol"
typeof true; // "boolean"
typeof null; // "object"
typeof undefined; // "undefined"
형 변환
묵시적 형변환 & 명시적 형변환
- +연산자 : 더하기 혹은 문자열 연결 의 연산의 기능을 한다.
1 + 2 // 3 : 더하기 연산
1 + "2" // "12" : +연산에서는 문자열의 우선 순위가 높으므로 숫자가 문자열로 변환
1 - "2" // -1 : -연산에서는 숫자를 빼는 기능 밖에 없으므로 문자열이 숫자로 변환
// 예상치 못한 형변환 상황 대비
1 + new Number(2) // 3 : 명시적 형변환
1 + parseInt(2) // 3 : 명시적 형변환
1 + (+"2") // 3 : 묵시적 형변환
- ==, != (동등 비교 연산자) : 동등 비교 연산자는 값을 truthy value 인지 falsy value 인지 변환 후 비교한다.
- falsy value : false 같은 값, ex) 0, -0, ''(비어있는 문자열), null, undefined, NaN
- truthy value : true 같은 값, ex) falsy value를 제외한 전부 (빈 배열, 빈객체는 truthy value)
- NaN(Not A Number) : 잘못된 숫자 연산시 반환값, 모든 비교연산에서 false를 반환 ex) NaN == NaN // -> false
0 == 0 // true
"0" == "" // false
123 == "123" // true
0 == "" // true
- ! (논리 Not 연산자) : 값이 가진 truthy, falsy 속성을 반전시킨 boolean 으로 변환한다.
!1 // false
!"" // true
!![] // true
!!{} // true
!NaN // true
- && (논리 And 연산자)
a && b;
// a가 true 이면 b를 반환
// a가 false 이면 b의 내용을 확인하지 않고, a를 반환
a && something();
// a가 true 이면 something() 함수가 실행
// a가 false 이면 실행되지 않음
- || (논리 Or 연산자)
a || b;
// a가 true이면 b의 내용을 확인하지 않고 a를 반환
// a가 false이면 b를 반환
var somthing = a || 1;
// a가 true 이면 something에 a가 할당
// a가 false 이면 something에 1이 할당
반응형
'프로그래밍 > JAVASCRIPT 사전' 카테고리의 다른 글
[JS] 화살표 함수, 쉽고 빠르게 정리하기 (8) | 2021.05.11 |
---|---|
[YOU DON'T KNOW JS 정리] THIS (1) (4) | 2021.05.08 |
[JS] arguments 객체 그리고 유사배열 객체 (0) | 2021.05.05 |
[JS] 문법정리 > 확실한 프로토타입 체이닝 정리 (0) | 2020.12.29 |
[JS] 문법 정리 > 함수: 선언, 호이스팅, 일급 객체 (0) | 2020.12.20 |
댓글
이 글 공유하기
다른 글
-
[YOU DON'T KNOW JS 정리] THIS (1)
[YOU DON'T KNOW JS 정리] THIS (1)
2021.05.08 -
[JS] arguments 객체 그리고 유사배열 객체
[JS] arguments 객체 그리고 유사배열 객체
2021.05.05 -
[JS] 문법정리 > 확실한 프로토타입 체이닝 정리
[JS] 문법정리 > 확실한 프로토타입 체이닝 정리
2020.12.29 -
[JS] 문법 정리 > 함수: 선언, 호이스팅, 일급 객체
[JS] 문법 정리 > 함수: 선언, 호이스팅, 일급 객체
2020.12.20