연산자(Operator)#2

준성·2022년 7월 15일
0
post-thumbnail

1. Equality

  • loose equality 동등연산자(==)는 동일한지 확인하며, Strict equality 즉 일치연산자(===)와는 다르게 다른 타입의 value까지 같은지 확인한다.

  • 일치연산자(===)라는 동일하게 확인하는 동등연산자(==) 같은 방식이지만 타입이 다르다면 서로 다른 것으로 간주된다.

const stringSix = '6'; //type: string
const numberSix = 6;  //type: number

// == loose equality
console.log(stringSix == numberSix);
// 문자열 6 과 숫자 6이 같다 (true)
console.log(stringSix != numberSix);
// 문자열 6 과 숫자 6이 같지 않다. 하지만 같기떄문에 (false) 

// === strict equality
console.log(stringSix === numberSix);
// 문자열 6 과 숫자 6이 같다 타입이 다르기 때문에 (false)
console.log(stringSix !== numberSix);
// 문자열 6 과 숫자 6이 같지 않다. 타입이 다르기 때문에 (true)

자바스크립트 언어는 타입이 밖으로 보여지지 않기 때문에 팀원들간에 프로젝트를 하다보면 어려움이 있을 수 있으므로 자바스크립트 위에 타입이 얹혀진 타입스크립트를 사용한다. 또한 타입을 신경쓰면서 코드를 작성해야 하므로 일치연산자(===)를 사용해서 코드를 작성하는 것이 좋다.

  • Object equality

Object 변수는 같게 설정이 되어도 안에 속해있는 reference 값이 다르게 저장되기 때문에 결과 값이 다르다.

const jun1 = {name: 'junseong'};
const jun2 = {name: 'junseong'};
const jun3 = jun1;

console.log(jun1 == jun2);
// jun1 과 jun2는 같다. 값은 같아도 저장된 곳이 다르기 때문에 같지않다. (false)
console.log(jun1 === jun2);
// jun1 과 jun2는 같다. 속성값은 같아도 저장된 곳이 다르기 때문에 값이 같지않다. (false)
console.log(jun1 === jun2);
// jun3 과 jun1는 같다. jun3은 jun1의 변수를 가져온것이기에 같다. (true)

  • Equality EX
console.log(0 == false);
// 0 , null , undefined , '' 는 false로 간주 될 수 있다. (true)
console.log(0 === false);
// 0 과 fasle는 같으나 타입이 다르므로 (false)
console.log('' == false);
// 위 처럼 false로 간주 될 수 있다. (true)
console.log('' === false);
// '' 와 false는 타입이 다르므로 (false)
console.log(null == undefined);
// null 과 undefined는 같은 값으로 출력되므로 (true)
console.log(null === undefined);
// 하지만 타입은 같지 않으므로 (false)

2. If , Else opreator

삼항 조건 연산자라 하며 연속된 조건문을 사용하여 작성하면 그 뒤에 결과값이 맞으면 실행하고 아니면 다음 결과값이 맞는지 확인한다.

const name = 'jun';
if (name === 'jun') {
  console.log('Welcome, Jun!');
} else if (name == 'junseong') {
  console.log('Are you Junseong?');
} else {
  console.log('unknown');
}
// name은 jun이고 만약 name이 jun이라면 welcome,jun으로 출력되고
// 아니면 만약에 name이 junseong이면 are you junseong?으로 출력되고
// 그것마저도 아니면 unknown으로 출력된다.

3. Ternary operator

위와 같이 삼항 조건 연산자라 하며 조건문을 작성하면 그 뒤에 결과값이 맞으면 실행하고 아니면 다음 결과값이 맞는지 확인한다.
조건문의 구문은 condition(조건) ? exprIfTrue(참 식) : exprIfFalse (거짓 식)
값을 간단하게 출력하기위해 사용된다.

const name = 'junseong';
console.log(name === 'junseong' ? 'ture' : 'false');
// name은 junseong이며 만약 junseong이면 ? 다음 값인 ture가 나오며
// 틀리다면 : 다음 값인 false가 나오게 된다.  

4. Switch

Switch 연산자는 조건값을 설정하고 case를 작성해 그 case가 맞다면 case안에 있는 조건을 실행시키는 연산자다. 코드 예시로 보면

const drink = 'coffee';
switch (drink) {
  case 'water':
    	console.log('no');
    	break;
  case 'smoothie': // 같은 값을 출력하는 case면 묶어서 사용해도 가능하다.
  case 'cider':
    	console.log('give me a coffee');
    	break;
  case 'coffee':
  		console.log('Thank you!');
		break;    
}

위와 같이 drink는 커피라는 조건을 만들고 case에 맞춰 실행시킨다.
만약 if else를 여러개 반복하는 식이면 switch를 이용해 좀 더 간편하게 할 수 있다.
정해져 있는 타입을 검사 또는 비슷한 인원을 검색 할때는 switch가 수월하다.


5. While Loops

while 조건문이 참일 때 실행되는 반복문이다. 조건은 문장안이 실행되기 전에 참, 거짓을 판단한고 조건이 거짓이 되었을때 실행을 멈추게 된다.

let i = 5; // i는 5다.
while (i > 0){ // 5가 0보다 크니 실행하고 반복하여 5가 0이 되기전에 멈춰 
	console.log(`while: ${i}`); // 출력해줘
  	i--; // 5에서 1을 감소시키자
}
// 결과값은 1부터 5까지의 값이 병렬 된다.
do{
	console.log(`do whlie: ${i}`); // i는 5야
  	i--; // 5에서 1를 감소시키자
}while (i > 0); // i가 0이 되면 멈추고 그게 값이야
// 결과값은 0의 값이 된다.

do whilewhile 둘의 차이점은 만약에 처음부터 조건을 만족하지 않은 상황이라면 while문은 반복문을 한번도 실행하지 않을 수 있지만 조건을 나중에 비교하는 do~while은 어찌되었던 do문을 적어도 한번은 실행하는 것입니다.


6. for Loops

for 조건문은 변수를 제시해 조건의 부합될 때까지 진행되다 실행을 멈추게 된다.
쉽게 얘기해 (for : 변수; 조건; 단계)로 설명될 수 있다.

for(i = 3; i > 0; i--){ // i는 3이고 3이 0보다 크니 0이 되기전에 멈추고
  // 3을 하나씩 감소시키자 그리고 그걸 조건에 맞출때까지 반복해
  console.log(`for: ${i}`); // i의 값을 출력해
}

for(let i = 3; i > 0; i = i -2){ 
  // i는 3이란 변수고 3은 0보다 크다 그리고 3 - 2를 빼줘
  console.log(`inline variable for: ${i}`); 
  // i = 3인값과 i - 2를 한값을 출력해
}
// inline variable은 block 안에 지역변수를 넣어서 반복문을 사용한다.

While , For

while , for 의 차이점은 while 같은경우에 조건이 정해지지 않은 상태에서 유동적으로 조건에 맞을때까지 반복하는 것이며, 파일을 읽고 쓰는데 유용하다
for 같은경우에는 변수를 지정해 조건을 정하며 원하는 값만 뽑아낼 수 있을때까지 반복하는 것이며 횟수가 정해졌다면 for문을 사용한다.


nested loops

중첩루프라고한다. 변수를 지정한 조건안에 또 다른 변수를 지정해 값을 같이 뽑아낼 수 있다.
자주 사용하지 않는 loop다.

for(let i = 0; i < 10; i++) {
    for (let j = 0; j < 10; j++) {
        console.log(`i: ${i}, j: ${j}`);
    }
}
// i가 0일때 j를 0 - 9까지 출력하고 i가 1일때 
// j를 0 - 9까지 i가 10보다 작을때까지 반복해라
profile
코드를 그리다.

0개의 댓글