Script

연산자, if, 반복문 본문

Javascript

연산자, if, 반복문

scripter. 2022. 6. 11. 19:22

1.문자열 연결

console.log('my'+'cat'); // my cat
console.log('1'+2); // 12
console.log(`string literals: 1 + 2 = ${1+2}`); //string literals: 1 + 2 = 3

2.숫자 연산자

console.log(1+1); //더하기
console.log(1-1); //빼기
console.log(1/1); //나누기
console.log(1*1); //곱하기
console.log(5%2); //나머지
console.log(2**3); //거듭제곱

3.++, -- 연산자

++counter의 경우

let counter =2;
const preIncrement = ++counter;
//counter = counter +1;
//preIncrement = counter;
console.log(`preIncrement:${preIncrement},counter:${counter}`);//preIncrement:3 , counter:3

counter++의 경우

let counter =2;
const preIncrement = ++counter;
//counter = counter +1;
//preIncrement = counter;
console.log('preIncrement':${preIncrement},counter:${counter});
const postIncrement = counter++;
//postIncrement = counter;
//counter=counter + 1;
console.log(`preIncrement:${preIncrement},counter:${counter}`);//preIncrement:3 , counter:4

둘의 차이는 ++counter는 증가값을 그대로 preIncrement에도 저장 시키고

자신에게도 저장시켜 출력했을때 둘다 증가값이 나온다

반면에 counter++은 증가되기 전 counter의 값을 preIncrement에 저장시키는게 우선이고 값 증가는 그 후에 이뤄진다

따라서 preIncrement에는 증가값이 아닌 3이 저장되고 counter에만 4가 저장되는 것이다.

 

--도 마찬가지

 

4.할당 연산자

let x=3;
let y=6;
x += y; // x= x+y;
x -= y;
x *= y;
x /= y;

 

5.비교 연산자

생략

 

6.논리 연산자:||(or),&&(and),!(not)

const value1 = true;
const value2 = 4<2;

//||에서 값이 하나라도 참일 경우
console.log(`or:${value1 || value2 || check}`);//여기서 check는 함수
//or는 3개중에 단 하나라도 참일 경우 참이므로 결과값은 true이다

//&&에서 값이 하나라도 거짓일 경우
console.log(`or:${value1 || value2 || check}`);
//and는 3개중에 단 하나라도 거짓일 경우도 허용하지 못하므로 결과값은 false이다

//check는 함수이므로 다른 2개의 인자들에 비해 무게가 무겁다
//check를 맨앞에 두었음에도 뒤에 인자에서 false값이 나와 실행이 안될 경우에
//드는 손해를 생각해야하고 따라서 제일 무거운 인자일수록 뒤에 두어야 한다

//!(not)
console.log(!value1);
//value1의 값이 true이고 앞에 !가 붙었으므로 결과값은 false가 나온다

7.항등 연산자 ==, ===

const stringFIve = '5';
const numberFive = 5;

//== loose equality,with type conversion
console.log(stringFive == numberFive);//true
console.log(stringFive != numberFive);//false
//타입이 달라도 안에 있는 내용물이 같으므로 둘은 같다고 판명한다

//===strict equality,no type conversion
console.log(stringFive === numberFive);//false
console.log(stringFive !== numberFive);//true
//타입이 엄연히 다르므로 둘은 다르다고 판명한다
//===의 엄격함 때문에 검사할때는 ===를 쓰는것이 좋다

//object equality by reference
const A1 = {name:'A'}
const A2 = {name:'A'}
const A3 = A1
console.log(A1 == A2); //f(각각 다른 객체에 담겨있고 따라서 주소값 자체가 다르므로 다르다고 판단한다)
console.log(A1 === A2); //f
console.log(A1 === A3); //t(A3는 A1의 참조값을 그대로 가져오므로 true)

//euqality-puzzler
console.log(0 == false;); //t
console.log(0 === false); //f
console.log('' == false); //t
console.log('' === false); //f
console.log(null == undefined); //t 둘은 같다고 간주되지만
console.log(null === undefined);//f 타입은 다르다

8.조건 연산자:if, else if , else

 

const name = 'df';
if (name === 'A'){
  console.log('Hi');      
}else if(name === 'B'){
  console.log('Hello');
}else{
  console.log('Hey');
}

9.삼항 연산자:?

condition ? value1 : value2

console.log(name === 'A'?'yes':'no');//true면 왼쪽에있는 yes false면 오른쪽에 있는 no 출력

10.switch문

다중 if 검사에 사용
열거형과 같은 값 확인에 사용
TS에서 여러 유형 검사에 사용

 

const browser ='IE';
switch(browser){
  case "IE":
    console.log('go away!');
}break;
case 'Chrome':
  console.log('love you!');
  break;
  default:
    console.log('same all!');
    break;

browser가 IE면 go away! 출력후 break(스톱)

Chrome이면 love you! 출력후 break

이도저도 아니면(default) same all! 출력후 break

 

11.while문 do-while문
while 반복문: 조건이 참인 동안,본문 코드가 실행된다.

 let i = 3;   
 while(i>0){
  console.log(`while:${i}`);
  i--
 }


do while 반복문: 본문 코드가 먼저 실행되고 그런 다음 상태를 확인한다.

 do{
  console.log(`do while: ${i}`);//do while:0
  i--;
 }while(i>0);
 //위의 while문 때문에 i가 0이 되었으므로 조건에 맞지 않아 출력되지 않을것 같지만
 //do while은 일단 저지른 후에 검사를 실행한다

 //블럭을 먼저 실행하고 싶다면 do while을 써야하고
//조건이 맞을때만 실행하고 싶다면 while을 써야한다

12.for 반복문, for(begin; condition; step)

 for(i=3; i>0; i--){
  console.log(`for`${i});
 }

//inliine varaiable declaration(조건문 블럭 안에서 지역변수를 선언하는 것 )
 for(let i=3; i>0; i=i-2){
  console.log(`inline variable for:${i}`);
 }

 //중첩 반복문
 for (let i=0; i<10; i++){
  for (let j=0; j<10; j++){
    console.log(`i:${i}, j:${j}`);
  }
 }

중첩 반복문의 결과값:

i가 0일때 j는 0~10
i가 1일때 j는 0~10
i가 2일때 j는 0~10
i가 3일때 j는 0~10
i가 4일때 j는 0~10
i가 5일때 j는 0~10
.
.
.
이런식으로 진행된다.

 

continue & break

continue는 설정한 값을 만나면 그 값을 건너뛰게 하는 것이고

break는 설정한 값을 만나면 그대로 종료 시키는 것이다.

 

q1.1~10중 짝수만 나오게 출력하시오(continue 사용)

 for(i=0; i<11; i++)
 {
  if(i%2!==0){
    continue;
  }
  console.log(i);
 }

q2.1~10을 반복하는 반복문에서 8까지만 나오게 하시오.(break 사용)

for(i=0; i<11; i++){
  if(i>8){
    break;
  }
  console.log(i);
 }

'Javascript' 카테고리의 다른 글

object란?  (0) 2022.06.14
class와 object  (0) 2022.06.14
함수  (0) 2022.06.12
데이터타입  (0) 2022.06.11
async vs defer  (0) 2022.06.11
Comments