TIL 211004

제로초 js 강의
2-7 / 2-8 / 2-9 / 2-10
2-11 / 2-12 / 2-13 / 2-14
2-15 / 2-16


1) 논리 연산자(and,or)

  • &&(and)
    • 양쪽 모두 참이면, true이다. -> 한 쪽이라도 거짓이면, false이다.
    • (10 > 5) && (6 < 8);
  • ||(or)
    • 한 쪽만 참이어도 true이다.
    • (10 > 5) || (6 > 8);
  • !
    • !가 앞에 있으면 성질을 반대로 바꾼다 true면 false가 되고 / false면 true가 된다.
    • !true -> false
    • 응용
      • 자료를 boolean으로 바꾸기
        • !!'a' (앞에 !!붙이면 된다)
      • 암기 : boolean으로 형변환하면, false나오는 것들
        • false,0,NaN,'',undefined,null이것들 앞에
        • ' ' 띄워쓴 빈 문자열은 true이다
        • 주의사항 : undefined를 boolean으로 형변환하면, false이지만, undefined와 false는 다른 값이다. 나머지 6개도 마찬가지이다.
  • undefined
    • 빈 값을 의미한다.
    • 1+3 -> 4 처럼 컴퓨터는 결과값이 있을 때는 해당 값을 돌려준다. 그러나 돌려 줄 값이 없을 때는 undefined를 돌려준다.
      • 에시 : 변수 선언할 때,
  • null
    • undefined와 마찬가지로 빈 값이다. 의도적으로 쓰는 빈 값이다.

2) 변수 만들기

  • let
    • let a = 3;(변수 선언문)
      • 3을 a에 저장한다.
      • 변수 선언하면, undefined가 출력된다.
      • 변수 선언 한번만 해야한다. 두번하면 오류뜬다.
    • let a;
      • a는 값이 초기화 되지 않은 상태 -> 기본값이다.
      • a입력하면, undefined가 출력된다.

3)변수 이름 짓기

  • 변수명에 쓸수 있는 특수기호
    • _ $
  • 띄워쓰기 불가능
    • 방법 : greenApple
    • 띄워쓰기 대신에 대문자를 쓴다.

4)변수에 저장된 값 바꾸기

  • let a = 3;
  • a = 4;
    • 값을 바꿀 때, let은 쓰면 안된다. 한번만 써야함
    • 이때는 변수 선언할 때와 달리 결과값을 출력한다.(4를 출력한다.)
  • 변수를 빈 값으로 만드는 방법
    • null을 써라
    • let a = null;

5) number+=3;

  • 의미 number = number + 3;

6) const

  • const b = 3;
    • let과 달리 변수에 저장된 값을 못바꾼다.
    • 에러 발생하는 경우
      • 변수 선언하고 값을 바꾸려 할 때,
        • b = 4;
      • const b; 처럼 변수 선언할 때, 값을 안넣은 경우
        • 이유 : const는 값을 못바꾸기 때문에, 선언할 때, 변수에 값을 넣어야 한다.

7) var

  • 지금은 안씀, 오래된 코드에서 볼 수 있다.
    • 변수 선언을 2번이상 해도 오류가 뜨지 않는다.

8) 조건문 if

if(조건식){
	동작문
}
  • 원리 조건이 참이 되면, 동작문을 실행한다.

9) 조건문 else

if(false){
  console.log('a');
} 
else {
  console.log('b');
}
  • 조건문이 참을 만족시키지 못하면, else의 동작문이 실행된다.

10) 조건문 else if

if(false){
  console.log('a');
} 
else if(조건){
  console.log('b');
} 
else {

}
  • else if 여러번 쓸 수 있음
  • else 없어도 된다.
  • if는 있어야 한다.

11)중첩 조건문

if(false){
  console.log('a');
  if(false){
    console.log('a');
  } 
  else {
    console.log('b');
  }
} 
else {
  console.log('b');
}
  • 되도록이면, 중첩 조건문을 쓰지마라, 다르게 표현하려고 노력해라
    • 부작용 : 콜백지옥
  • 중첩조건문 피하는 방법
    • 조건문과 논리연산자(and,or)를 같이 쓴다.
if(false && false){
  console.log('a');
} 
else if(false && true){
  console.log('b');
} 
else {

}

12) 조건문 switch(핵심 break;)

let value = 'a';
switch (value){
  case 'a':
    console.log('a');
}
  • switch의 조건식과 case의 비교조건식이 일치하면, 동작문을 실행한다.
let value = 'a';
switch (value){
  case 'a':
    console.log('a');
    break;
  case 'b':
    console.log('b');
    break;
  case 'c':
    console.log('c');
    break;
}
  • 조건문과 비교조건문이 일치하는 console.log('a'); 실행된다.
let value = 'a';
switch (value){
  case 'a':
    console.log('a');
  case 'b':
    console.log('b');
  case 'c':
    console.log('c');
  default:
    console.log('f');
}
  • 이때는 console.log('a'); console.log('b');console.log('c'); 3개다 실행된다.
    • switch문은 동작문이 실행되면, break;가 없으면, 밑에 위치한 동작문 전부를 실행한다

default:
console.log('f');

  • 의미: 조건문에서 else의 역할과 같다.

13) 조건부 연산자(삼항 연산자)

  • 5 > 0 ? '참입니다' : '거짓입니다.'
    • 조건식 ? 참일 때 실행문 : 거짓일 때, 실행문
  • let a=5 > 0 ? '참입니다' : '거짓입니다.'
    • 5>0 조건식은 참이다 -> 참일 때, 동작문이 변수 a에 저장된다.
  • 중첩된 조건부 연산자1
    • let value = condition1 ? condition2 ? '둘다 참' : 'condition1만 참' : 'condition1만 거짓';
      • 해당 문장에 ?가 2개이므로 조건부 연산자가 중첩이 되었다.
      • let value = condition1 ? (condition2 ? 둘다 참 : condition1만 참) : condition1만 거짓;
        • 괄호로 묶어서 생각하자
  • 중첩된 조건부 연산자2
    • let value = condition1 ? 'condition1이 참' : condition2 ? 'condition2가 참' : '둘다 거짓'
      • let value = condition1 ? 'condition1이 참' : (condition2 ? 'condition2가 참' : '둘다 거짓')

14) 반복문

  • while
while(조건식){
	동작문
}
  • 조건이 참이면, 동작문을 계속 실행시킨다.
  • 무한 반복문을 만들지 않는 방법
let i = 1;
while(i<=100){
  console.log('zero');
  i+=1
}
  • 여기서 i+=1i++ 동일하다.
    • 두 식의 의미가 다른 경우도 있음
  • 조건식 뒤에는 ;붙이면 안된다.

좋은 웹페이지 즐겨찾기