ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVASCRIPT] 데이터 타입과 연산자(1)
    Programming/JAVASCRIPT 2019. 12. 4. 17:41

    자바스크립트의 데이터 타입

    1) 기본타입

    - 숫자(Number)

    - 문자열(String)

    - 불린값(Boolean)

    - undefined

    - null

    2) 참조타입

    - 객체(Object)

    -> 배열(Array)

    -> 함수(Function)

    -> 정규표현식

    Javascript는 var라는 한 가지 키워드로만 변수 선언.

    typeof로 변수 타입 확인가능

    ex)

    var intNum = 10; // 정수

    var floatNum = 0.1; // 실수

    var boolVar = true; // 불린

    var emptyVar; // undefined

    var nullVar = null; // null

     

    typeof intNum;

    typeof floatNum;

    typeof boolVar ;

    typeof emptyVar;

    typeof nullVar;

    출력

    number number boolean undefined object 

    자바스크립트 기본 타입

    숫자

    var num = 5 / 2; 를 하면 C의 int형에서 소숫점을 버리는 것과 다르게, Javascript에서는 소숫점까지 같이나옴.

    정수 부분만 구하고싶다면?

    console.log(Math.floor(num)); // 출력값 2

    문자열

    문자열은 작은 따옴표(')나 큰 따옴표(")로 생성

    ex)

    var str = 'test';

    console.log(str[0], str[1], str[2], str[3]); // 출력 : test

    * 한번 생성된 문자열은 읽기만 가능하고 수정은 불가!!!

    null과 undefined

    둘 다 '값이 비어있음'을 나타냄.

    값이 기본적으로 할당되지 않은 변수는 undefined 타입이고, 변수 자체의 값 또한 undefined.

    즉 값도 undefined, 변수 타입도 undefined

    null 타입은 개발자가 명시적으로 값이 비어있음을 나타냄.

    // null 변수 생성

    var nullVar = null;

    console.log(typeof nullVar === null); // (출력) false

    console.log(nullVar === null); // (출력) true

    null의 변수 타입은 object 이기 때문에 일치연산자(===) 사용시 값을 확인해야함!!!

    자바스크립트 참조 타입(객체 타입)

    자바스크립트는 숫자, 문자열 , 불린값, null, undefined 제외하고는 모두 객체!

    자바스크립트에서 객체

    -> '이름(key):값(value)' 형태로 프로퍼티 저장하는 컨테이너, 여러 개의 프로퍼티 포함할 수 있음.

    (프로퍼티 == 메소드)

    객체 생성

    생성 방법은 3가지

    1) Object() 객체 생성자 함수 이용

    2) 객체 리터럴 이용

    3) 생성자 함수 이용

    1) Object() 객체 생성자 함수 이용

    // Object()로 start 객체 생성

    var start = new Object();

    // start 객체 프로퍼티 생성

    start.name = 'start';

    start.age = 26;

    start.gender = 'male'

    console.log(typeof start); // (출력) object

    console.log(start); // (출력) {name: 'start', age: 30, gender: 'male'}

    2) 객체 리터럴 방식 이용

    객체 리터럴 이란 객체를 생성하는 표기법을 의미.

    // 객체 리터럴 방식으로 start 객체 생성

    var start = {

    name : 'start',

    age : 30,

    gender: 'male'

    };

    console.log(typeof start); // (출력) object

    console.log(start); // (출력) {name: 'start', age: 30, gender: 'male'}

    3) 생성자 함수 이용 -> 뒤에서 다루겠음

    객체 프로퍼티 읽기 / 쓰기 / 갱신

    접근 2가지 방법

    - 대괄호([]) 표기법

    - 마침표(.) 표기법

    var start = {

    name : 'start',

    major : 'engineering'

    };

    // 객체 프로퍼티 읽기

    console.log(start.name); // (출력) start

    console.log(start['name']); // (출력) start

    // 객체 프로퍼티 갱신

    start.major = ' management';

    console.log(start,major); // (출력) management

    console.log(start['major']); // (출력) management

    // 객체 프로퍼티 동적 생성

    start.age = 26;

    console.log(start.age); // (출력) 30

    * 접근하려는 프로퍼티가 표현식이거나 예약어일 경우 대괄호 표기법만을 이용해서 접근

    ex )

    start['full-name'] = 'start bar';

    console.log(start['full-name']) // (출력) start bar

    console.log(start.full-name); // (출력) NaN

    // NaN = Not A Number

    - > full-name 사이에 '-' 가 연산자로 착각해 나타나는 현상 . 예를 들어 1 - 'hello' 같은 경우 불가능한 연산이기에 NaN

    for in 문과 객체 프로퍼티 출력

    var start = {

    name: 'start',

    age: 26,

    major: 'information'

    };

    // for in 문을 이용한 객체 프로퍼티 출력

    var prop;

    for (prop in start) {

    console.log(prop, start[prop]);

    }

    (출력)

    name start

    age 26

    major 'information'

    객체 프로퍼티 삭제

    *delete 연산자를 이용하여 삭제하지만 객체 프로퍼티만 삭제, 객체 자체를 삭제하지는 못한다!!

    var start = {

    name: 'start',

    age: 26;

    };

    delete start.age;

    console.log(start.age); // (출력) undefined

Designed by Tistory.