하드디스크
, 연산(CPU)
, 메모리
가 있다.Code
: 개발자가 작성한 코드
Data
: 어플리케이션에서 전반적으로 필요한 변수 즉, 데이터들을 저장
Stack
: 어플리케이션을 실행하는 순서를 보관하는 곳
Heap
: 객체를 저장
컴파일러
인터프리터
★ 정리
DOM APIs
Network APIs
Audio/Video APIs
Storage APIs
console.log
setTimeout
fetch
let number = 2;
let number = 2;
let num = '2';
// number, string, boolean, null, undefined
let number = 2; (x) -> let age = 2; (o)
let number = 2;
let number2 = number;
console.log(number);
console.log(number2);
---
2
2
let number = 2;
let number2 = number;
console.log(number);
console.log(number2);
number2 = 3;
console.log(number);
console.log(number2);
---
2
3
let obj = {
name: 'ellie',
age: 5,
};
let obj = {
name: 'ellie',
age: 5,
};
console.log(obj.name);
let obj = {
name: 'ellie',
age: 5,
};
console.log(obj.name);
let obj2 = obj;
console.log(obj2.name);
---
ellie
ellie
let obj = {
name: 'ellie',
age: 5,
};
console.log(obj.name);
let obj2 = obj;
console.log(obj2.name);
obj.name = 'james';
console.log('obj.name');
console.log('obj2.name');
---
ellie
ellie
james
james
let obj = {
name: 'ellie',
age: 5,
};
obj.name = 'James';
console.log('obj.name');
---
james
object
로 나온다.)undefined
로 나온다.) {
return num1 + num2;
}
fuction add(num1, num2) {
return num1 + num2;
}
fuction add(num1, num2) {
return num1 + num2;
}
const sum = add.(3, 4);
console.log(sum);
---
7
fuction add(num1, num2) {
return num1 + num2;
}
const doSomething = add;
const result = doSomething(2, 3);
console.log(result);
const result2 = add(2, 3);
console.log(result2);
---
5
5
function print() {
console.log('print');
}
print(8, 33);
---
print
function add(num1, num2) {
return num1 + num2;
}
function surprise(operator) {
const result = operator(2, 3);
console.log(result);
}
surprise(add);
---
5
function add(num1, num2) {
return num1 + num2;
}
function divide(num1, num2) {
return num1 / num2;
}
function surprise(operator) {
const result = operator(2, 3);
console.log(result);
}
surprise(divide);
---
0.6666666666666666
console.log('1' + 2);
console.log('1' + 2);
console.log(`string literals: 1 + 2 = ${1 + 2}`);
console.log(`string literals:
''''
1 + 2 = ${1 + 2}`);
console.log('ellie\'s book');
console.log("ellie's \nbook");
console.log("ellie's \tbook");
console.log(1 + 1)
console.log(1 - 1)
console.log(1 / 1)
console.log(1 * 1)
console.log(1 % 1)
console.log(1 ** 1)
counter라는 변수가 있으면 변수 앞에 ++ 또는 --라는 기호를 앞에 붙여주게 되면 Pre-Increment, 뒤에 ++ 또는 --라는 기호가 있으면 Post-Increment이다.
Pre-Increment란 counter에 1을 더해서 counter에 값을 할당하고 나서 preIncrement라는 변수에 다시 할당한다.
let counter = 2;
const preIncrement = ++counter;
// counter = counter + 1;
// preIncrement = counter;
let counter = 2;
const preIncrement = counter++;
// postIncrement = counter;
// counter = counter + 1;
let x = 3;
let y = 6;
x += y; // x = x + y;
x -= y;
x *= y;
x /= y;
console.log(10 < 6);
console.log(10 <= 6);
console.log(10 > 6);
console.log(10 >= 6);
const value1 = true;
const value2 = 4 < 2;
console.log(`or: ${value1 || value2 || check()}`);
function check() {
for (let i = 0; i < 10; i++) {
// wasting time
console.log('^_^');
}
return true;
}
const value1 = true;
const value2 = 4 < 2;
console.log(`and: ${value1 && value2 && check()}`);
function check() {
for (let i = 0; i < 10; i++) {
// wasting time
console.log('^_^');
}
return true;
}
const value1 = true;
console.log(!value1);
---
false
==
의 경우 loose equality로 타입을 변경해서 비교를 한다.const stringFive = '5';
const numberFive = 5;
console.log(stringFive == numberFive);
console.log(stringFive != numberFive);
---
true
false
===
의 경우 strict equality로 타입을 변경해서 비교가 안된다.const stringFive = '5';
const numberFive = 5;
console.log(stringFive == numberFive);
console.log(stringFive != numberFive);
---
false
true
const name = 'ellie';
if (name === 'ellie') {
console.log('Welcome, Ellie!');
} else if (name === 'coder') {
console.log('You are amazing coder');
} else {
console.log('unknown');
}
condition ? value1 : value2;
const name = 'df';
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--;
}
---
while: 3
while: 2
while: 1
먼저 실행하고 싶으면 do-while
을 사용하고 조건문이 맞을 때만 사용하고 싶으면 while
을 사용해야 한다.let i = 3;
while (i > 0) {
console.log(`while: ${i}`);
i--;
}
do {
console.log(`do while: ${i}`);
i--;
} while (i > 0);
---
while: 3
while: 2
while: 1
do while: 0
for(begin; condition; step)
let i = 3;
for (i = 3; i > 0; i--) {
console.log(`for: ${i}`);
}
---
for: 3
for: 2
for: 1
for (let i = 3; i > 0; i--) {
console.log(`inline variable for: ${i}`);
}
---
inline variable for: 3
inline variable for: 1
for (let i = 0; i < 10; i++) {
for (let j = 0; j < 10; j++) {
console.log(`i: ${i}, j:${j}`);
}
}
class Counter {
constructor() {
this.counter = 0;
}
increase() {
this.counter++;
console.log(this.counter);
}
}
this.counter
를 0으로 초기화 한다.coolCounter.increase();
를 통해 함수를 호출한다.class Counter {
constructor() {
this.counter = 0;
}
increase() {
this.counter++;
console.log(this.counter);
}
}
const coolCounter = new Counter();
coolCounter.increase();
this.callback
함수를 호출한다.this.callback
함수를 호출할 때 함수안에 있는 (this.counter)
라는 데이터를 전달한다.function printSomething
이 수행이 된다.this.callback && this.callback(this.counter);
라는 함수는 this.callback
의 undefinded의 여부를 확인해준다.class Counter {
constructor(runEveryFiveTimes) {
this.counter = 0;
this.callback = runEveryFiveTimes;
}
increase() {
this.counter++;
console.log(this.counter);
if (this.counter % 5 === 0) {
this.callback && this.callback(this.counter);
}
}
}
function printSomething(num) {
console.log(`Wow! ${num}`);
}
const coolCounter = new Counter(printSomething);
coolCounter.increase();
coolCounter.increase();
coolCounter.increase();
coolCounter.increase();
coolCounter.increase();
---
1
2
3
4
5
Wow! 5
출처
드림코딩 - 자바스크립트 기초 1. 변수
드림코딩 - 자바스크립트 기초 2. 함수
드림코딩 - 자바스크립트 4. 코딩의 기본 operator, if, for loop 코드리뷰 팁
드림코딩 - 자바스크립트 기초 4. 클래스