java나 c랑 비교해서 다른부분만 우선 기술.
// let : block-scoped 지역변수, const : block-scoped 상수
// 모던 자바에서는 var를 사용하지 않는다.
let value1 = 1;
const con1 = 1;
// 문자열은 ""나 ''뭐든 상관 없다. 섞어 쓰지만 않으면 됨
let value2 = 'abc';
let value3 = "abc";
let value4 = true;
// 없음 -> null과 undefined.
// null 명시적으로 해당 값이 없음을 나타냄. 의도된 없음.
// undefined 아직 할당되지 않음. 의도되지 않은 없음.
let a = null;
consol.log(a); // null
consol.log(type of a); // object
let b;
consol.log(b); // undefined
//consol.log(type of b); // object
// object정의, 객체 리터럴 방식
let obj = {
userId : 'gyeon',
old : 28,
gender : false,
coding : function(lang) {
console.log(this.userId + ' is coding ' + lang + '.');
}
...
};
// 배열 정의
let arr = [1, 3, 5];
/* === : 두 값이 정확하게 일치하는지. 타입검사까지 진행.
** !== : 두 값이 완전 다른지. 타입검사까지 진행.
** == : 두 값이 일치하는지
** != : 두 값이 다른지
** ===와 !==사용을 권장.
*/
const a = 1;
const b = '1';
console.log(a == b); // true
console.log(a === b); // false
const empty1 = null;
const empty2 = undefined;
console.log(a == b); // true
console.log(a === b); // false
function func1(a, b) {
...
return ...;
}
// 화살표함수 =>, 자바의 람다식과 비슷한듯?
let result = (a, b) => {
return a * b;
}
// 객체 할당 및 구조 분해 방식 사용 예제
let obj = {
userId : 'gyeon',
old : 28,
gender : false,
coding : function(lang) {
console.log(this.userId + ' is coding ' + lang + '.');
}
};
function objTest(obj) {
// 사용할때 명칭이 같아야 매칭이 됨.
const {userId, old, coding} = obj;
console.log(userId); // >> gyeon
console.log(old); // >> 28
coding("JS"); // >> undefined is coding JS.
obj.coding("JS"); // >> gyeon is coding JS.
}
//게터와 세터
let obj = {
_userId : 'gyeon',
_old : 28,
_gender : false,
coding : function(lang) {
console.log(this.userId + ' is coding ' + lang + '.');
},
set userId(userId) {
this._userId = userId;
},
set old(old) {
this._old = old;
},
set gender(gender) {
this._gender = gender;
},
get userId() {
return this._userId;
},
get old() {
return this._old;
},
get gender() {
return this._gender;
}
};
obj.old = 29;
console.log(obj.old); // >> 29
// 객체 배열 생성
let objs = [{
a : "aaa",
b : "bb"
}, {
c : "ccccc",
d : "d"
}]
// 배열에 추가
objs.push({
e: "YEE"
})
// 출력(확인)
console.log(objs[0].a) // >> aaa
console.log(objs[0].b) // >> bb
console.log(objs[1].c) // >> ccccc
console.log(objs[1].d) // >> d
console.log(objs[2].a) // >> undefined
console.log(objs[2].e) // >> YEE
console.log(objs.length)// >> 3
// + foreach등등 기능많음.
// for...of
// 그러나 배열의 내장함수 foreach를 사용하는게 더 나음.
const nums = [1, 3, 5, 6, 9];
for (let n of nums) {
console.log(n);
}
// for...in
// 객체를 위한 반복문
const obj = {
userId : 'gyeon',
name : 'gyujun',
old : 28
}
for (let a in obj) {
console.log('${a} : ${obj[a]}');
}
https://learnjs.vlpt.us/basics/06-object.html
https://berkbach.com/%EA%B8%B0%EC%B4%88%EB%B6%80%ED%84%B0-%EB%B0%B0%EC%9A%B0%EB%8A%94-react-js-1531b18f7bb2