1일차 배운거 복습하며 정리하기!
데이터 타입의 언어는 2개로 나뉜다.
하나는 강형언어 다른 하나는 약형언어이다.
강형언어의 특징은 변수 선언시 데이터 타입을 지정하는 언어로,
C++ JAVA등의 언어가 있다.
약형언어는 변수 선언시 데이터 타입을 지정하지 않는 언어로,
값에 따라 자동으로 데이터 타입이 결정된다.
// 강형언어의 예시
String name = "홍길동";
name = 25; // 에러
int age = 30;
// 약형언어의 예시
var name = "홍길동";
name = 25; // 문자열에서 숫자로 재할당 즉 다른 타입으로 재할당 가능
var age = 30;
데이터 타입의 종류는 2가지다.
기본 타입(Primitive type) 과 참조 타입(Refrence type) 으로 나뉜다.
기본 타입 예시
// Number
var num = 100;
var floatNum = 3.14;
// String
var s1 = "single quote";
var s2 = "double quote";
// Boolean
var b1 = true;
var b2 = false;
// undefined
var emptyval;
// null
var nullVal = null;
console.log(num, floatNum, s1, s2, b1, b2, emptyval, nullVal);
console.log(
typeof num,
typeof floatNum,
typeof s1,
typeof s2,
typeof b1,
typeof b2,
typeof emptyval,
typeof nullVal
);
위 코드에 값이다. 그렇다면 위에 있는 타입들에 대해서 알아보자.
숫자(Number)
문자열(String)
논리값(Boolean)
Undefined
Null
BigInt
Symbol
var s1 = Symbol("hello");
var s2 = Symbol("world");
var s3 = Symbol("hello");
console.log(s1 === s2); // false
console.log(s2 === s3); // false
console.log(s1, s2, s3); // false
Object
객체 생성 1
var foo = new Object();
foo.name = "kim";
foo["age"] = 30;
foo.job = "student";
foo["married"] = false;
console.log(foo["name"], foo.age, foo.job, foo["married"]); // kim, 30, student, false
console.log(typeof foo, foo); // object {name: kim, age: 30, job: student, married: false}
객체 생성 2
var foo1 = {
name: "lee",
age: 35,
job: "teacher",
married: true,
};
console.log(foo1["name"], foo1.age, foo1.job, foo1["married"]); // lee 35 teacher true
console.log(typeof foo1, foo1);
// object {name: lee, age: 35, job: teacher, married: true}
var strfoo1 = JSON.stringify(foo1);
console.log(typeof strfoo1, strfoo1, strfoo1.age);
// string {name: lee, age: 35, job: teacher, married: true}
var objfoo = JSON.parse(strfoo1);
console.log(typeof objfoo, objfoo, objfoo.age);
// object {name: lee, age: 35, job: teacher, married: true}
JSON 표기법
객체 표기법
배열 표기법
객체의 모든 속성 접근
// 객체 생성
var foo = {
name: "foo",
major: "computer science",
};
// 객체 프로퍼티 읽기
console.log(foo.name.toUpperCase(), foo["major"], foo.sub /*.toupperCase()*/); // FOO computer science undefined
// 객체 프로퍼티 갱신
foo.major = "electronic engineering";
console.log(foo.name.toUpperCase(), foo["major"], foo.sub /*.toupperCase()*/); // FOO electronic engineering undefined
// 객체 프로퍼티 동적 생성
foo.sub = "computer engineering";
console.log(foo.name.toUpperCase(), foo["major"], foo.sub /*.toupperCase()*/); // FOO electronic engineering computer engineering
// 객체 프로퍼티 삭제
delete foo.major;
console.log(foo.name.toUpperCase(), foo["major"], foo.sub /*.toupperCase()*/); //FOO undefined computer engineering
// 객체 모든 프로퍼티 읽기
for (var prop in foo) {
console.log(prop, foo[prop]);
} // name foo
// sub computer engineering