console.log('my' + 'cat');
console.log('1' + 2);
console.log(`string literals : 1 + 2 = ${1 + 2}`);
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 (제곱)
let counter = 2;
const preIncrement = ++counter;
// counter = counter + 1; counter에 1을 먼저 더해주고
// preIncrement = counter; preIncrement에 counter가 할당이 된다. counter는 값이 3이 나온다
console.log(`preIncrement : ${preIncrement}, counter : ${counter}`);
const postIncrement = counter++;
// postIncrement = counter; 위에서 counter의 값이 3이 된 상태에서
// postIncrement(counter = 3)에 먼저 할당이 되고
// counter = counter + 1; 그 뒤에 counter의 값에 1을 더해준다 그래서 counter의 값은 4가된다.
console.log(`postIncrement : ${postIncrement}, counter : ${counter}`);
const preDecrement = --counter;
console.log(`preDecrement : ${preDecrement}, counter : ${counter}`);
const postDecrement = counter--;
console.log(`postDecrement : ${postDecrement}, counter : ${counter}`);
let x = 3;
let y = 6;
x += y; // x = x + y; 반복구문을 생략해서 작성하여 연산 할 수 있다.
x -= y;
x *= y;
x /= y;
console.log(10 < 6); // less than 10이 6보다 작다 false
console.log(10 <= 6); // less than or equal 10이 6보다 작거나 같다 false
console.log(10 > 6); // greater than 10이 6보다 크다 true
console.log(10 >= 6); // greater than or equal 10이 6보다 크거나 같다 true
const value1 = true;
const value2 = 4 < 2;
// console.log(`or : ${false || false || true}`);
console.log(`or : ${value1 || value2 || check()}`);
// console.log(`and : ${true && false && true}`);
console.log(`and : ${value1 && value2 && check()}`);
function check() {
for (let i = 0; i < 10; i++) {
//wasting time
console.log('😱');
}
return true;
}
let nullableObject = null
if (nullableObject != null) {
nullableObject.something;
}
console.log(!value1);
const stringFive = '5';
const numberFive = 5;
console.log(stringFive == numberFive);
console.log(stringFive != numberFive);
console.log(stringFive === numberFive);
console.log(stringFive !== numberFive);
const ellie1 = { name: 'ellie' };
const ellie2 = { name: 'ellie' };
const ellie3 = ellie1;
console.log(ellie1 == ellie2); // false -> false인 이유는 객체값은 같지만 저장된 heap주소가 다르기 때문
console.log(ellie1 === ellie2); // false -> false인 이유는 객체값은 같지만 저장된 heap주소가 다르기 때문
console.log(ellie1 === ellie3); // true -> true인 이유는 객체값을 모두 할당해 주었기 때문
console.log(0 == false); // true
console.log(0 === false); // false
console.log('' == false); // true
console.log('' === false); // false
console.log(null == undefined); // true
console.log(null === undefined); // false
const name = 'ellie';
if (name === 'ellie') {
// name이 ellie일 때 실행
console.log('Welcome, Ellie!');
} else if (name === 'coder') {
// name이 coder일 때 실행
console.log('You are amazing coder');
} else {
// 전부 해당이 안되면 실행
console.log('unkwnon');
}
console.log(name === 'ellie' ? 'yes' : 'no');
const browser = 'IE';
switch (browser) {
case 'IE':
console.log('go away!');
break;
case 'Chrome':
case 'Firefox':
console.log('love you!');
break;
default:
console.log('same all!');
break;
}
let i = 3;
while (i > 0) {
console.log(`while: ${i}`)
i--;
}
do while loop, body code is executed first, (do while 반복은 body code를 먼저 실행하고)
then check the condition.(그리고 조건이 맞는지 체크한다.)
do {
console.log(`do while: ${i}`);
i--;
} while (i > 0);
for (let 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}`);
}
for (let i = 0; i < 10; i++) {
for (let j = 0; j < 10; j++) {
console.log(`i : ${i}, j : ${j}`);
}
}
for (let i = 0; i < 10; i++) {
if (i % 2 === 0) {
console.log(`printB : ${i}`);
// continue
}
}
for (let i = 0; i < 11; i++) {
if (i % 2 !== 0) {
continue
}
console.log(`printB : ${i}`);
}
for (let i = 0; i < 10; i++) {
if (i === 8) {
console.log(`printA : ${i}`);
break
}
}
for (let i = 0; i < 11; i++) {
if (i > 8) {
break
}
console.log(`printA : ${i}`);
}
let output = '';
for (let i = 0; i < 9; i++) {
for (let j = 10; j > i + 1; j--) {
output += ' ';
}
for (let k = 0; k < (2 * i + 1); k++) {
output += '*';
}
output += '\n';
}
console.log(output);