[자바스크립트] 자바스크립트 데이터 타입과 연산자
자바스크립트의 값은 크게 기본타입과 참조타입으로 나뉜다
1. 자바스크립트 기본 타입
기본타입 : 숫자, 문자열, 불린값, null, undefined
자바스크립트는 느슨한 타입 체크 언어이다. 엄격한 타입 체크 언어인 C언어는 변수를 선언할 때 변수에 저장할 데이터 종류에 따라 예약어를 이용해서 변수의 데이터 타입을 지정해야한다. 하지만 자바스크립트는 변수를 선언 할 때 타입을 미리 정하지 않고, var라는 한가지 키워드로만 변수를 선언한다
// 숫자타입
var intNum = 10;
var floatNum = 0.1;
// 문자열 타입
var singleQuoteStr = 'single quote string';
var singleChar = 'a';
// 불린 타입
var boolVar = true;
// undefined타입
var emptyVar;
//null 타입
var nullVar = null;
console.log(
typeof intNum,
typeof floatNum,
typeof singleQuoteStr,
typeof singleChar,
typeof boolVar,
typeof emptyVar,
typeof nullVar
);
2. 자바스크립트 참조 타입(객체 타입)
- 기본타입을 제외한 모든 값은 객체 / 배열, 함수, 정규표현식 등 모두 객체다
- 객체는 단순히 이름(key):값(value) 형태의 프로퍼티들을 저장하는 컨테이너로서, 컴퓨터 과학 분야에서 해시라는 자료구조와 상당히 유사하다
- 기본타입은 하나의 값만을 가지는데 비해, 참조타입의 객체는 여러개의 프로퍼티를 포함할수 있으며,
- 객체의 프로퍼티는 기본 타입의 값을 포함하거나, 다른 객체를 가리킬 수도 있다. 이러한 프로퍼티의 성질에 따라 객체의 프로퍼티는 함수로 포함할 수 있으며, 자바스크립트에서는 이러한 프로퍼티를 메서드라고 부른다.
2.1 객체 생성
자바처럼 클래스라는 개념이 없고, 객체 리터럴이나 생성자 함수 등 별도의 생성방식으로 크게 3가지 있다
2.1.1 Object() 생성자 함수 이용
//Object()를 이용해서 foo 빈 객체 생성
var foo = new Object();
// foo 객체 프로퍼티 생성
foo.name = 'foo';
foo.age = 30;
foo.gender = 'male';
console.log(typeof foo); // (출력값) object
console.log(foo); // (출력값) hello_javascript.js:47 Object age: 30 gender: "male" name: "foo"
2.1.2 객체 리터럴 방식 이용
리터럴이란?
표기법이라고 생각하면된다
객체리터럴(=객체를 생성하는 표기법)
· 객체 리터럴은 중괄호를 이용해서 객체생성, {}안에 아무것도 적지 않은 경우는 빈 객체가 생성,
· 중괄호 안에 "property 이름":"property 값"
형태로 표기하면, 해당 프로퍼티가 추가된 객체를 생성 할 수 있다
· property이름은 문자열이나 숫자가 올수 있다
· property값은 자바스크립트의 값을 나타나내는 어떤 표현식도 올수 있으며, 이 값이 함수일 경우 이러한 프로퍼티를 메서드라고 부른다
// 객체 리터럴 방식으로 객체 생성
var foo = {
"name" : "foo",
"age" : 30,
"gender" : "male"
}
2.1.3 생성자 함수 이용
to be continue...
2.2 객체 프로버티 읽기/ 쓰기 / 갱신
객체의 property에 접근하는 두가지 방법
1. 대괄호 표기법([]) : 객체의 프로퍼티를 문자열의 형태로 만든다음 대괄호를 둘러싸면된다. 대괄호안에 ''가 빠지면 출력이 안됨
2. 마침표(.) 표기법 : 객체 다음에 마침표를 찍고 원하는 속성값을 적음
var foo = {
name : 'foo',
major : 'conputer seience'
}
// 객체 property 읽기
console.log(foo.name);
console.log(foo['name']);
console.log(foo.nickname);
// 객체 property 갱신
foo.major = 'electronics engineering';
console.log(foo.major);
console.log(foo['major']);
// 객체 property 동적 생성
foo.age = 30;
console.log(foo.age); // 객체가 생성된 후에도 동적으로생성후 속성값을 할당할수 있다.
// 대괄호 표기법반을 사용해야할 경우
foo['full-name'] = 'foo bar';
console.log(foo['full-name']);
console.log(foo.full-name); // (결과값) NaN , -를 표현식으로 오해
console.log(foo.full);
console.log(foo.name);
2.3 for in 문과 객체 프로퍼티 출력
for in문을 사용하면, 객체에 포함된 모든 속성에대해 루프를 수행 할 수 있다.
var prop;
for(prop in foo){
console.log(prop,foo[prop])
}
Author And Source
이 문제에 관하여([자바스크립트] 자바스크립트 데이터 타입과 연산자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yenow/자바스크립트-자바스크립트-데이터-타입과-연산자저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)