JavaScript 2. Operator

khxxjxx·2021년 4월 27일
0

드림코딩 by 엘리

목록 보기
2/11

강좌 : 유튜브 드림코딩 by 엘리

2. Operator

📄 String concatenation

  • 싱글쿼터(')나 더블쿼터(")를 이용해 문자를 감싸고 플러스(+)를 이용해 연결
  • 문자안에 싱글쿼터를 사용할 경우 싱글쿼터 앞에 백슬래시를 사용하거나 문자를 더블쿼터로 감싸준다
  • \n : 줄바꿈, \t : 탭키
// 예시
console.log('my' + ' cat');  // my cat
console.log('1' + 2);  // 12
console.log("hxxjxx's book");  // hxxjxx's book

string literals

  • 변수값을 계산해서 스트링으로 포함해서 문자를 만든다
  • 줄바꿈을 하거나 싱글쿼터를 이용해도 그대로 문자열로 변환되서 출력
// 예시
console.log(`string literals: 1 + 2 = ${1 + 2});

→ string literals: 1 + 2 = 3

✍️Numeric

  • 더하기 +
  • 빼기 -
  • 나누기 /
  • 곱하기 *
  • 나머지 %
  • 제곱 **

✍️Increment and decrement

  • 증가(++), 감소(--) 연산자
  • 변수앞에 ++을 붙여주게 되면 counter에 값을 먼저 할당한 다음 preIncrement변수에 counter의 값을 할당
// 예시
let counter = 2;
const preIncrement = ++counter;

→ counter = 3, preIncrement = 3
  • 변수뒤에 ++을 붙여주게 되면 posiIncrement변수에 counter값을 먼저 할당한 다음 counter에 값을 할당
// 예시
let counter = 2;
const posiIncrement = counter++;

→ counter = 3, posiIncrement = 2

✍️Assignment

  • 할당(=) 연산자
  • 반복되는것을 생략해서 나타낼 수 있다
// 예시
let x = 3;
let y = 6;
x += y;  // x = x + y;
x -= y;
x *= y;
x /= y;

✍️Comparison

  • 작다 ( i < 10 )
  • 작거나 같다 ( i <= 10 )
  • 크다 ( i > 10 )
  • 크거나 같다 ( i >= 10 )

✍️Logical

|| (or)

  • 값들중에 하나라도 true가 있으면 true가 return된다
  • 첫번째 값으로 true가 나오면 더이상 뒤의 값들을 보지 않고 거기서 멈춘다

&& (and)

  • 모든 값들이 true여야지 true가 return된다
  • 첫번째 값으로 false가 나오면 더이상 뒤의 값들을 보지 않고 거기서 멈춘다

! (not)

  • 값을 반대로 바꿔준다

✍️Equality

==

  • loose equality
  • 타입을 변경해서 검사
  • 타입이 다른 문자'5'와 숫자5 를 비교해도 true를 반환

===

  • strict equality
  • 타입을 신경써서 검사
  • 타입이 다르면 false를 반환

📖 연습해보기

0 == false  // true
0 === false  // false
'' == false  // true
'' === false  // false
null == undefined  // true
null === undefined  // false

✍️Conditional

if, else if, else

  • if(변수 또는 식 == 값) 사용
  • 조건이 부합되는 구문실행
// 예시
const name = 'hxxjxx';
if (name === 'hxxjxx') {
    console.log('Welcome, Hxxjxx');
} else if (name === 'coder') {
    console.log('You are amazing coder');
} else {
    console.log('unkwon');
}

→ Welcome, Hxxjxx

Ternary : ?

  • condition ? value1 : value2;
  • 물음표(?) 앞의 값이 true이면 쌍점(:) 앞에있는 값을 반환하고 false면 뒤에있는 값을 반환
// 예시
const name = 'hxxjxx';
console.log(name === 'hxxjxx' ? 'yes' : 'no');

→ yes

Switch

  • switch(변수 또는 식) case 값 사용
  • 조건문에서 비교할 값이 많은 경우
  • if문은 모든 조건을 다 확인하지만 switch문은 조건에 해당하는 구문을 만나면 실행과 동시에 루프를 종료
  • 같은 구문을 사용할 땐 반복할 필요없이 case를 연달아서 사용 가능
// 예시
const browser = 'Chrome';
switch (browser) {
  case 'IE':
    console.log('go away');
    break;
  case 'Chrome':
  case 'Firefox':
    console.log('love you');
    break;
  default:
    console.log('same all');
    break;
}

→ love you

✍️Loops

while

  • 조건이 false가 될때까지 무한대로 반복
// 예시
let i = 3;
while (i > 0) {
  console.log(`while: ${i}`);
  i--;
}

do while

  • do를 먼저 실행하고나서 조건을 확인
// 예시
let i = 0;
do {
  console.log(`do while: ${i}`);
  i--;
} while (i > 0);

for

  • for(begin; condition; step)
// 예시
for (let i = 0; i < 3; i++) {
  console.log(`for: ${i}`);
}

nested loops

  • 실행시간 O(n²)
  • cpu에 좋지 않으므로 되도록이면 피하는게 좋다
// 예시
for (let i = 0; i < 10; i++) {
  for (let j = 0; j < 10; j++) {
    console.log(`i: ${i}, j: ${j}`);
  }
}

break

  • loop를 완전히 끝내는 것

📖 연습해보기

// iterate from 0 to 10 and print numbers until reaching 8 (use break)
for (let i = 0; i < 11; i++) {
  if (i > 8) {
    break;
  }
  console.log(`number: ${i}`);
}

continue

  • 지금것만 스킵하고 다음스텝으로 넘어가는 것

📖 연습해보기

// iterate from 0 to 10 and print only even numbers (use continue)
for (let i = 0; i < 11; i++) {
  if (i % 2 !== 0) {
    continue;
  }
  console.log(`even number: ${i}`);
}
profile
코린이

0개의 댓글