반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- kubernetes
- 스프링핵심원리
- 이펙티브자바
- 코딩테스트
- 오블완
- 스프링 핵심원리
- java
- k8s
- 김영한
- 카카오 면접
- 알고리즘정렬
- 스프링부트
- 예제로 배우는 스프링 입문
- Effective Java 3
- 티스토리챌린지
- JavaScript
- ElasticSearch
- effectivejava
- 이펙티브 자바
- 클린아키텍처
- 자바스크립트
- Effective Java
- 이차전지관련주
- 스프링
- 엘라스틱서치
- 카카오
- Sort
- 자바
- Spring
- 알고리즘
Archives
- Today
- Total
Kim-Baek 개발자 이야기
JavaScript Data Type (자바스크립트 데이터 타입) 본문
Data Type
- 자바스크립트는 크게 2가지의 데이터 타입으로 나뉜다. (기본타입 / 참조타입)
1. 기본 타입
- Number
- String
- Boolean
- Undefined
- Null
자바스크립트의 기본 타입은 그 자체가 하나의 값을 나타내는 것이다.
var num = 10;
var str = "jeahyun";
var flag = true;
var empty;
var val = null;
typeof num // number
typeof str // string
typeof flag // boolean
typeof empty // undefined
typeof val // object
typeof 는 피연산자의 타입을 리턴해준다.
모든 숫자를 64비트 부동 소수점 형태로 저장한다(C의 double).
var num = 3/2;
// 1.5가 출력된다. C나 JAVA의 경우 1이 출력된다.
console.log(num);
한번 정의된 문자열은 변하지 않는다
var str = "jeahyun";
str[0] = "t";
// jeahyun이 출력된다.
console.log(str);
- null과 undefined는 둘다 값이 비어있음을 의미한다.
- 기본 적으로 값이 할당되지 않으면 undefined 타입이며, undefined 타입의 변수는 값 또한 undefined이다.
- 즉 undefined는 타입이자 값을 나타낸다.
- null의 경우 typeof 결과가 null이 아닌 object이다.
var val;
console.log(typeof val === null); //false
console.log(val === null); //true
null 체크할 때 주로 === 연산자를 이용한다.
2. 참조 타입 (객체)
- Array
- Object
- 정규 표현식
- 기본 타입을 제외한 모든 값(배열, 함수, 정규표현식 등)은 모두 객체이다.
- 자바스크립트의 객체는 key : value 페어의 형태로 해쉬 자료구조로 생각하면 된다.
- 객체의 프로퍼티는 기본 타입의 값을 가질 수도 있고 다른 참조 타입(객체)를 가질 수도 있다.
객체의 프로퍼티로 함수를 가지고 있다면 그 프로퍼티를 메소드라 부른다.
객체 생성 방법
- Object() 객체 생성자 함수를 이용한다.
- 객체 리터럴을 이용한다.
- 생성자 함수를 이용한다.
// 1. Object() 객체 생성자 함수를 이용
var obj = new Object();
obj['full-name'] = "kimjeahyun";
obj.name = "jeahyun";
obj.age = "26";
// 2. 객체 리터럴을 이용한다.
var obj2 = {
name: 'chicken',
type: 'food'
};
console.log(typeof obj); // object
console.log(obj[name]); // jeahyun
console.log(obj2.name); // chichen
delete obj.age;
객체의 프로포티를 읽기 위해서는 대괄호([]), 또는 마침표(.)를 이용해서 읽는다.
단 마침표를 이용해 읽을 때는 접근하려는 프로퍼티가 예약어 or 표현식일 경우이다.
delete 연산자를 이용해 객체의 프로퍼티를 삭제할 수 있다. 단 객체 자체를 삭제할 수는 없다.
참조 타입은 실제 값이 아닌 참조 값으로 처리한다.
var obj1 = {
num: 10
};
var obj2 = obj1;
console.log(obj1.num); //10
console.log(obj2.num); //10
obj2.num = 20;
console.log(obj1.num); //20
console.log(obj2.num); //20
var obj3 = {
num: 20
};
console.log(obj1 == obj2); // true
console.log(obj1.num == obj3.num); // true
console.log(obj1 == obj3); // false
Object를 비교하는 연산은 값이 아니라 참조 값을 비교한다.
기본 타입의 경우는 Call by Value 방식, 참조 타입의 경우는 Call by Reference 방식이다.
var num = 10;
var obj = {
val: 10
};
function myFnc(num, obj){
num = 20;
obj.val = 20;
};
myFnc(num, obj);
console.log(num); //10
console.log(obj.val); //20
반응형
'개발 > JavaScript' 카테고리의 다른 글
자바스크립트 개발환경 및 디버깅 (0) | 2020.11.24 |
---|---|
Javascript Call, This (0) | 2020.10.04 |
Javascript Function Object (자바스크립트 함수 객체) (0) | 2020.10.03 |
JavaScript Function (자바스크립트 함수) (0) | 2020.10.02 |
Javascript 간단 개념 (0) | 2020.09.30 |
Comments