JavaScript/기초
javascript 기본 타입, 참조 타입(객체 타입)
고기고기물고기
2022. 4. 19. 02:58
javascript 기본타입
자바스크립트에서 기본 타입은 숫자, 문자열 불린값을 비롯해 null, undefined라는 타입이 있다.
자바스크립트는 느슨한 타입 체크 언어다.
느슨한 타입, 강력한 타입 Ex)
/* JavaScript Example (loose typing) */
var a = 13; // Number 선언
var b = "thirteen"; // String 선언
/* Java Example (strong typing) */
int a = 13; // int 선언
String b = "thirteen"; // String 선언
1. 숫자
- C 언어의 경우 정수냐 실수냐에 따라 int, long, float, double 등과 같은 다양한 숫자 타입이 존재하지만, 자바스크릡트는 하나의 숫자형만 존재한다. 자바스크립트에서는 모든 숫자를 64비트 부동 소수점 형태로 저장하기 때문이다.
var num = 5 / 2;
console.log(num); // (출력값) 2.5
console.log(Math.floor(num)); // (출력값) 2
2. 문자열
- 문자열은 작은 따옴표(')나 큰 따옴표(")로 생성한다.
- 한 번 정의된 문자열은 변하지 않는다.
// str 문자열 생성
var str = 'test';
console.log(str[0], str[1], str[2], strp3[); // (출력값) test
// 문자열의 첫 글자를 대문자로 변경?
str[0] = 'T';
console.log(str);// (출력값) test\
// var 로 선언된 문자는 수정을 불가능
3. 볼린값
// 볼린타입
var boolBar = true;
4. null, undefined
- 두 타입은 모두 자바스크립트에서 '깂이 비어있음'을 나타낸다
- 자바스크립트 환경 내에서 기본적으로 값이 할당되지 않는 변수 undefined 타입
- undefined 타입이자 값을 나타낸다
// null 타입 변수 생성
var nullVar = null;
console.log(typeof nullVar === null); //(출력값) false
console.log(nullVar === null); //(출력값) true
javascript 참조 타입
1. 객체 생성 - Object 생성자 함수 이용
// Object()를 이용해서 foo 빈 객체 생성
var foo - new Object();
// foo 객체 프로퍼티 생성
foo.name = 'foo';
foo.age = 30;
console.log(typeof foo); // (출력깂) object
console.log(foo); // (출력값) {name : 'foo', age : 30}
2. 객체 리터럴 방식이용
객체 리터럴 방식으로 foo 객체 생성
var foo = {
name = 'foo',
age: 30,
gender : 'male'
};
console.log(typeof foo); // (출력값) object
console.log(foo); //(출력값) {name : 'foo', age : 30, gender : 'male'}
console.log(foo.name); // foo
console.log(foo['name']); // foo
console.log(foo.nickname); // undefined
※ 대괄호 표기법만 사용해야 할 경우
foo['full-name'] = 'foo bar';
console.log(foo['full-name']; // foo bar
console.log(foo.full-name); // NaN
- full-name 경우는 '-' 연산자가 있는 표현식이다 이 경우에는 대괄호 표기법만을 이용해서 foo['full-name'] 형태로 접근해야 한다.
3. for in 문과 객체 프로퍼티 출력
// 객체 리터럴을 통한 foo 객체 생성
var foo = {
name : 'foo',
age : 30,
major : 'computer science'
};
var prop
for (prop in foo)
{
console.log(prop, foo[prop]);
}
출력결과
name foo
age 30
major 'computer science'
4. 객체 프로퍼티 삭제
- delete 는 프로퍼티를 삭제하되, 객체를 삭제하지 못한다.
var for = {
name : 'foo',
nickname : 'babo'
};
console.log(foo.nickname); //babo
delete foo.nickname;
console.log(foo.nickname); // undefined
delete foo; // 객체는 삭제 X
console.log(foo.name); foo