Script
연산자, if, 반복문 본문
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 |