JS 정리(2) - 기본편
2. Variables(변수)
// Boolean
/*
Boolean : 값이 true, false 두 가지 밖에 없으며, 이 값들을 '진리값'이라고 부른다. 즉,
진리값은 조건이 참인지 거짓인지를 나타내기 위함이다
*/
1 < 2; // true
1 > 2; // false
3 === 3; // true
3 !== 3; // false
/*
논리 연산자 : ||(OR), &&(AND), !(NOT) 연산자가 있다
*/
// OR : 인수 중 하나라도 true이면 true를 반환하고, 그렇지 않으면 false를 반환하라
/*
true || true // true
true || false // true
false || true // true
false || false // false
*/
// AND : 두 피연산자가 모두가 참일 때 true를 반환하고, 그 외의 경우는 false를 반환하라
/*
true && true // true
true && false // false
false && true // false
false && false // false
*/
// NOT : 인수를 하나만 받고, 그 외에는 전부 다 반대로 생각하면 된다
// !true면? 반대로 false가 된다는 의미이고, !0이면? 반대로 true가 나온다는 뜻이다
/*
Operator Precedence(연산자 우선순위)
- 한 구문에 여러 개의 연산자를 이어서 쓴 경우, 먼저 계산되고 나중에 계산되는 것을 말한다
- AND가 우선이고 OR이 그 다음이다(& > | > && > ||)
*/
/*
true || true && false; // true
(true || true) && false; // false
true || false && false; // true
(true || false) && false; // false
*/
/*
논리 연산의 여러 가지 법칙
*/
// 이중 부정
!!a === a;
// 교환 법칙
a || b === b || a;
a && b === b && a;
// 결합 법칙
(a || b) || c === a || (b || c);
(a && b) && c === a && (b && c);
// 분배 법칙
a || (b && c) === (a || b) && (a || c);
a && (b || c) === (a && b) || (a && c);
// 흡수 법칙
a && (a || b) === a;
a || (a && b) === a;
// 드 모르간의 법칙
!(a || b) === !a && !b;
!(a && b) === !a || !b;
// 그 밖에...
a || true === true;
a || false === a;
a && true === a;
a && false === false;
a || !a === true;
a && !a === false;
a || a === a;
a && a === a;
// 다른 타입의 값을 진리값으로 변환해야 할 때
!!'hello'; // true
Boolean('hello'); // true
// !은 여집합, '||'는 합집합, '&&'는 교집합, 'true'는 전체집합, 'false'는
// 공집합으로 생각하면 된다
3. Arrays(배열)
/*
Array : 하나의 변수명 아래에 데이터 아이템의 리스트를 저장하는 간편한 방법을 말한다
[] : 대괄호
*/
// 배열 전
const mon = 'mon';
const tue = 'tue';
const wed = 'wed';
const thu = 'thu';
const fri = 'fri';
const sat = 'sat';
const sun = 'sun';
// 배열 후
const week = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'];
// 배열 값 가져오기
console.log(week[0]); // 'mon'
// 배열 추가
week.push('variable') -> console.log(week)
// 'mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun', 'variable'
4. Objects(객체)
/*
Objects
1. 키와 값으로 구성된 Property들의 집합이다.
2. 원시타입을 제외한 나머지 값들은 모두 객체이다.
3. {} : 중괄호
-> 'Property(프로퍼티)' : 프로퍼티 키로 유일하게 실별할 수 있고, 키와 프로퍼티 값으로
구성되었다
[키 : 빈 문자열을 포함하는 모든 문자열 or Symbol값]
[값 : 모든 값]
-> 'method(메소드)' : Property값이 함수일 경우, 일반 함수와 구분하기 위해 메소드라 부른다
*/
// objects 전
const userName = 'kim';
const userAge = 20;
const userHandsome = true;
const userFat = 'little bit';
console.log(userName);
console.log(userAge );
console.log(userHandsome );
console.log(userFat);
// objects 전 -> array 버전
const user = ['kim', 20, true, 'liitle bit'];
console.log(user[0]); // name
console.log(user[1]); // age
console.log(user[2]); // handsome
console.log(user[3]); // fat
// objects 후
const user = {
name : 'kim',
age : 20,
handsome : true,
fat : 'little bit'
};
console.log(user.name); // kim
console.log(user.age); // 20
console.log(user.handsome); // true
console.log(user.fat); // little bit
// objects 수정 후
console.log(user.name); // kim
console.log(user.age); // 20
console.log(user.handsome); // true
console.log(user.fat); // little bit
// String
user.name = 'joo'; // kim -> joo
console.log(user.name); // joo
// Number
user.age = user.age + 10; // 20 + 10 -> 30
console.log(user.age); // 30