2022-08-18 국비지원 웹개발 8일차
<강사님>
코드가 눈에 익었다고 아는 게 아니에요.
코드를 설명할 수 있어야 아는 거예요.
논리 연산자, 3항 연산자 등에 대해 배웠다.
미션. 몸무게와 키를 임의의 변수에 대입한 후 키가 200 이상 이거나 몸무게가 150 이상이면 true를 출력하시오.
미션. 국어, 영어 점수를 임의의 변수에 대입한 후 평균을 구하고, 국어 영어 점수 중 하나가 40 미만 이거나 평균이 60 미만일 때 true를 출력하시오.
미션. 회원가입 여부가 변수 r에 저장되어 있고, 구매금액이 amt에 저장되어 있을 때, 회원이고 구매금액이 10000원 이상이면 true를 출력하시오.
미션. 변수 n에 정수 하나를 대입한 후 3항 연산자를 사용하여 홀짝수를 구분해 홀수인 경우 "홀수"를 짝수인 경우 "짝수"를 정수 n과 함께 출력하시오.
1. 논리곱
연산 생략:
let x=10;
r=(10>20)&&(x++>0);
console.log(r);
console.log(x);
이 경우 false와 10이 기록된다. 첫 번째 조건이 거짓이라 x++연산이 생략되었다.
let x=10;
r=(10>20)&(x++>0);
console.log(r);
console.log(x);
이 경우 0과 11이 기록된다. 첫 번째 조건이 참이라 두 번째 조건이 처리되면서 x++연산이 되었다.
처음에 나온 0은 비트 연산으로 0과 1만 표현되는데 0은 거짓이다. (굳이 알 필요는 없다.)
많은 양의 데이터를 처리할 때 연산 생략 기능이 유용하니 그냥 &&과 ||만 사용하는 게 좋다.
2. 논리합
3. 3항 연산자
기본 틀은 이렇다.
(조건) ? 변수 1 : 변수 2;
조건이 참일 경우 변수 1을 수행하고, 거짓이면 변수 2를 수행하여 그 결과를 전달한다.
4. 논리 연산자
참이나 거짓이다.
5. 기타
(1) var name: 'hong'
name: 'hong'
위에는 변수를 처음 선언했다는 게 명확하고, 밑에는 처음 선언된 건지 값을 바꾼 건지 명확하지 않다.
그래서 변수를 처음 선언할 때는 명령어를 써서 선언하는 게 좋다.
(2) 익명 함수: 이름이 없는 함수. function(){ }
(3) 변수는 대소문자를 구분한다.
고유 명령어를 변수로 사용할 수 없다. 포함은 가능하다. (ex. var var=0; 불가능, var var3=0; 가능.)
변수 이름의 시작은 영어 또는 밑줄로 쓴다.
변수 이름은 영어 대소문자, 숫자, 밑줄만 사용할 수 있다.
(4) 객체 생성법:
(a) 리터럴 let obj={ }
(b) 함수 function obj(){ }
(c) 클래스 class obj { }
(a), (b), (c) 모두 obj라는 이름의 객체를 생성하는 틀이다.
obj는 틀에 의해 만들어진 요소로 인스턴스라고 한다. 인스턴스는 메모리에 저장된 상태를 뜻한다.
(5) 모듈러%: 10%2는 10을 2로 나눌 수 있을 때까지 나눈 후 남은 나머지를 구한다. 즉 0이다.
=은 대입 연산자로 값을 대입한다는 뜻이고, ==이 같다는 표시다.
===은 값+데이터 유형까지 비교한다. 같다는 뜻이고 ==보다 빠르다.
!=은 같지 않다.
<, >, >=, <= 도 있다.
(6) 전치 or 선행
a=10;
b=++a;
이 경우 a=11, b=11이다.
후치 or 후행
a=10;
b=a++;
이 경우 a=11, b=10이다.
(7) a = a + 1; 은
a += 1; 과 같다.
a에 1을 더해 다시 a에 대입한다는 뜻이다.