자바스크립트 연산자, if문 for문 switch문
2021. 5. 13. 18:30ㆍTIL/자바스크립트
728x90
1. String concatenation 문자연결
console.log('my' + ' cat');
console.log('1' + 2);
console.log(`string literals:
''''
1 + 2 = ${1 + 2}`);
2. Numeric operators 숫자연산자
console.log(1+1); //add
console.log(1-1); //substract
console.log(1/1); //divide
console.log(1*1); //multiply
console.log(5%2); //remainder
console.log(2**3); //exponentiation
3. Increment and decrement operators +,-
let counter = 2;
const preIncrement = ++counter;
// 1) counter = counter + 1;
// 2) preIncrement = counter;
console.log(`preIncrement: ${preIncrement}, counter: ${counter}`);
const postIncrement = counter++;
// 1) postIncrement = counter;
// 2) conter = counter + 1;
console.log(`postIncrement: ${postIncrement}, counter: ${counter}`);
4. Assignment operators =
let x = 3;
let y = 6;
x += y; //x = x + y;
x -= y;
x *= y;
x /= y;
5. Comparison operators
console.log(10 < 6); // less than
console.log(10 <= 6); // less than or equal
console.log(10 > 6); // greater than
console.log(10 >= 6); // greater than or equal
6. Logical operators: || (or), && (and), ! (not)
const value1 = false;
const value2 = 4 < 2;
// || (or) 1가지라도 true면 true, 앞쪽에서 true가 나오면 뒤쪽은 실행하지않음
console.log(`or: ${value1 || value2 || check()}`);
// 무거운 함수들은 뒤쪽에 배치하는 것이 효율적이다
// && (and), finds the first falsy value ,앞에서 false가 나오면 뒤쪽은 실행하지않음
console.log(`and: ${value1 && value2 && check()}`);
function check() {
for (let i = 0; i < 10; i++){
//wasting time
console.log('😱');
}
return true;
}
// ! (not) 반대값
console.log(!value1); //true
7. Equality
const stringFive = '5';
const numberFive = 5;
// == loose equality, with type conversion 타입신경X
console.log(stringFive == numberFive); //true
// === strict equality, no type conversion 타입비교O
console.log(stringFive === numberFive); //false
// object equality by reference
const bella1 = { name: 'bella'};
const bella2 = { name: 'bella'};
const bella3 = bella1;
console.log(bella1 == bella2); //false
console.log(bella1 === bella2); //false
// object는 메모리에 탑재될 때 reference형태로 저장된다. bella1,2에는 각기 다른 reference를 갖고있기때문에 false가 나옴
console.log(bella1 === bella3); //true
// equality - puzzler
console.log( 0 == false); //ture
console.log( 0 === false); //false
console.log( '' == false); //ture
console.log( '' === false); //false
console.log( null == undefined); //ture
console.log( null === undefined); //false
8. Conditional operators: if 조건연산자
const name = 'abc';
if (name === 'bella') {
console.log('Welcome, Bella!');
} else if ( name === 'coder'){
console.log('You are amazing coder');
} else {
console.log('unknown');
}
9. Ternary operator: ? 삼항연산자
- condition ? value1 : value2;
console.log(name === 'bella' ? 'yes' : 'no')
// name이 bella가 맞으면 yes 아니면 no
10. Switch statement
- if else, for 문을 중첩적으로 사용해야 할 경우 switch문을 사용하는 것이 더 간단하고 가독성을 높여준다
const browser = 'IE';
switch (browser) {
case 'IE':
console.log('go away!');
break;
case 'Chrome':
case 'fireFox': //진행내용이 같을경우 case만 반복적으로 써주면 적용이 가능
console.log('love you!');
break;
default:
console.log('same all!');
break;
}
11. Loops
- false가 나올때까지 무한반복
let i = 3;
while (i > 0) {
console.log(`while: ${i}`);
i--;
}
// do while loop, body code is executed first, then check the condition.
do {
console.log(`do while: ${i}`);
i--;
}while (i>0);
// for loop, for(begin; condition; step)
for (i = 3; i > 0; i--){
console.log(`for: ${i}`);
}
for (let i = 3; i > 0; i= i -2) {
//inline variable declaration
console.log(`inline variable for: ${i}`);
}
// nested loops CPU에 좋지않은 방법
for (let i= 0; i < 10; i++) {
for (let j = 0; j <10; j++) {
console.log(`i: ${i}, j: ${j}`);
}
}
12. break, continue
break 반복문 완전히 끝내기, continue 현재것만 스킵하고 다음으로 넘어가는 것
Q1. 0부터 10까지 continue를 이용해 짝수만 출력하기
for (let evenNumber = 0; evenNumber < 11; evenNumber++) {
if (evenNumber % 2 !== 0){
continue;
}
console.log(`evenNumber: ${evenNumber}`);
}
//실제로 사용할땐 바로 출력하도록 만드는 것이 더 효율적
for (let evenNumber = 0; evenNumber < 11; evenNumber++) {
if (evenNumber % 2 === 0){
console.log(`evenNumber: ${evenNumber}`);
}
}
Q2. 0부터 10까지 출력하되, break를 이용해 8까지만 출력하고 멈추기
for (let number = 0; number < 10; number++ ){
if (number > 8) {
break;
}
console.log(`number: ${number}`);
}
'TIL > 자바스크립트' 카테고리의 다른 글
Object (0) | 2021.05.18 |
---|---|
class object 객체지향 (0) | 2021.05.17 |
Function 함수 (0) | 2021.05.14 |
변수 var, let, const (0) | 2021.05.12 |
JavaScript를 html에 연결하는 효율적인 방법 (0) | 2021.05.12 |