지금 우리가 사용하는 JS는 ES6으로 `const`, `let`, `Promise`, `Arrow function`, `class` 등의 문법들이 대거 추가되었다.
문서내에 요소를 선택하여 출력하는 방법(innerHTML, innerText 등)
문서내에 직접 출력하는 방법(write 등)
사용자 인터렉션(alert, confirm 등)
콘솔에 찍는 방법(console.log, console.table, console.error 등)
// : 한줄 주석
/* */ : 여러줄 주석
"use strict";
// 코드
$
, _
를 제외한 특수문자를 사용하지 않는다. if (true) {
const testName = 'hojun'
let testAge = 10
}
if (true) {
var testName2 = 'hojun'
var testAge2 = 10
}
+, -, /, *, **, %
)=, +=, -=, /=, *=, **=, %=
)&&, ||, !, !!, &, |
)원시타입(primitive types) : number, string, boolean, null, undefined, symbol(ES6 추가, 변경 불가능한 유일한 값)
참조타입(reperence types) : object(object, array, map, set), function
Number(숫자)
형태 : 10, 10.123, -10
호출 : 변수명
메서드
Number()
parseInt() - 권고, parseFloat()
Math
Math.PI
// 원주율
Math.max()
// 가장 큰 숫자 반환
Math.min()
// 가장 작은 숫자 반환
Math.floor()
// 지정된 숫자보다 작거나 같은 가장 큰 수를 반환
Math.round()
// 입력값을 반올림한 수와 가장 가까운 정수 값을 반환
Math.random()
// 암호학적으로 안전한 아무숫자를 반환
Math.abs()
// 주어진 숫자의 절대값을 반환
Math.sqrt()
// 숫자의 제곱근을 반환
Math.pow(base, exponent)
// exponent의 거듭제곱으로 base를 올린다.
NaN
Infinity, -Infinity
String(문자열)
abcde ${변수명}
Boolean(논리값)
undefine : undefind
null : object
Array(배열) : object
Array(100).fill(0)
Array(100).('hello')
Array(100).fill('hello'.repeat(2))
Array(100).fill(0).map((value, index=> value + index))
Object(객체)
{
"지역이름": "전국",
"확진자수": 24889,
"격리해체수": 23030,
"사망자수": 438,
"십만명당발생율": 48.0
}
{
'one' : 1,
'o n e' : 1,
'1 one' : 1
}
{
one : 1,
o n e : 1, //error
1 one : 1 //error
}
let x=1, y=2, z=3
let object = {x, y, z} //{x: 1, y: 2, z: 3}
console.log(Object.getOwnpropertyDescriptor(person, 'name'));
Object.getOwnPropertyDescriptors(person)
// {10: {…}, name: {…}, age: {…}, height: {…}, weight: {…}, 이력: {…}}
// value: '이호준',
// writable: true, // 변경 가능 여부, 기본값 false
// enumerable: true, // 열거(for) 가능 여부, 기본값 false
// configurable: true // 재정의 가능 여부, 기본값 false
Map : object
Set : object
for문은 조건식이 거짓으로 판별될 때까지 실행문을 반복한다.
for (let i = 0; i < 10; i++){
console.log(i); // 0~9까지 출력
}
for in
배열과 함께 사용할 수 있, for in 반복문은 배열 요소를 하나하나 꺼내서 특정 문장을 실행할 때 사용
const obj = {
name: 'curryyou',
job: 'engineer'
}
for (const key in obj){
console.log(`${key} : ${obj[key]}`);
}
// name : curryyou
// job : engineer
for in 반복문과는 다르게 for of 반복문의 반복 변수에는 인덱스의 번호가 아니라 인덱스의 요소의 값이 들어간다.
const arr = [10, 20, 30];
for (const item of arr){
console.log(item); // 10, 20, 30 출력
}
while
while문은 조건식이 참이기만 하면 명령문을 반복해서 수행한다.
let num = 0;
while(num <3){
console.log(num); // 0~2 까지 출력
num++;
}
do while
do-while 문도 조건식이 거짓으로 판별될 때까지 반복합니다. 하지만 조건식을 계산하기 전, do 이하의 명령문이 실행된다는 차이점이 있다.
do{
console.log('일단 한번은 실행된다.'); // 이 코드만 한번 실행되고 반복 종료.
}while(false);
forEach
forEach는 for문과 마찬가지로 반복적인 기능을 수행할 때 사용하지만, for문처럼 index와 조건식, increase를 정의하지 않아도 callback 함수를 통해 기능을 수행할 수 있다.
[10, 20, 30].forEach((value, index, array)=>{
console.log(`${index} : ${value}`); // 0 : 10, 1 : 20, 2: 30 출력
})
break
반복문, switch문, 레이블 문과 결합한 문장을 빠져나올 때 사용한다.
for (var i = 0; i < 10; i++) {
if (i == 5) { // i 가 5 와 같을 경우
break; // for 문 종료
}
console.log(i); // 0,1,2,3,4
}
continue
반복문 안의 반복 작업을 멈추고 반복문의 처음으로 돌아가 다음 반복 작업을 진행한다.
for (var i = 0; i < 10; i++) {
if (i == 5) { // i 가 5 와 같을 경우
continue; // 다시 순회표현식으로 이동
}
console.log(i); // 0,1,2,3,4,6,7,8,9
}
컨포넌트화해서 모듈화하는 것이 요즘 트렌드이다