1. toggle
document.querySelector("#ID").classList.toggle("sampleName");
위의 코드는 ID라는 id를 가진 html의 요소의 class 중에서 "sampleName"이 없다면 추가하고, 있다면 제거하라는 뜻이다.
이는 만약 toggle을 안 쓴다면 직관적으로 다음의 코드와 동치이다.
const hasClass = document.querySelector("#ID").classList.contains("sampleName");
if (hasClass){
document.querySelector("#ID").classList.remove("sampleName");
} else {
document.querySelector("#ID").classList.add("sampleName");
}
2. 백틱 template strings
큰따옴표나 작은 따옴표 대신에 백틱(`)을 사용하면 플레이스 홀더를 활용하여 쉽게 string을 작성할 수 있습니다.
let a = 5;
let b = 10;
console.log(`Fifteen is ${a + b}.`);
// "Fifteen is 15"
이는 큰따옴표나 작은 따옴표 활용시 다음과 같이 작성되었어야하는 불편함을 줄여줍니다.
let a = 5;
let b = 10;
console.log("Fifteen is "+(a+b)+".");
// "Fifteen is 15"
3. Arrow function
ES6부터 기존의 불편했던 JS의 함수 정의를 보다 더 간편하고 보기 쉽게 할 수 있게 되었다.
// 기존 함수 정의
function add(a,b){
return a+b;
}
function divide(a,b){
if (b!==0){
return "IMPOSSIBLE"
}
else{
return a/b
}
}
// arrow function
const add = (a,b) => a+b; // 한 줄인 경우 자동 return을 해준다 {} 없어도 됨.
const divide = (a,b) => {
if (b==0){
return "IMPOSSIBLE"
}
else{
return a/b
}
}
4. spread operator
배열 혹은 객체를 언패킹하여 저장할 수 있습니다.
아래의 예시 뿐만 아니라 object에서도 역시 적용 가능합니다.
const days = ["MON", "TUE", "WED"]
const otherDays = ["THU", "FRI", "SAT"]
let allDays = days+otherDays
// allDays = "MON,TUE,WEDTHU,FRI,SAT" (string으로 반환됨)
allDays = [days, otherDays]
// allDays = [Array(3), Array(3)] (배열을 저장한 배열로 반환됨)
allDays = [ ...days, ...otherDays]
// allDays = ["MON", "TUE", "WED", "THU", "FRI", "SAT"] (배열을 언패킹하여 저장한 배열로 반환됨)
5. class 상속
자바스크립트에서 react 사용 시, class 개념을 계속 사용하게 될 것이다.
이 때 상속의 방법은 다음과 같다.
class Parent {}
class Child extends Parent {}
6. Array.map / filter
array.map(func): array를 각각 돌면서 func에서 리턴한 값들을 배열로 저장.
array.filter(func): array를 각각 돌면서 func의 조건을 만족하는 값들만 배열로 저장
array.forEach(func): array를 각각 돌면서 요소에 대해 함수 실행.
array.push("data"): array끝에 "data"요소 추가.
array.includes("data"): array에 "data"존재 유무 boolean 으로 반환
allDays = ["MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"]
// index arg에는 index가 자동 저장된다.
const cryExceptSun = (day, index) => {
if (day === "SUN") {return `${index}:😄 ${day}`}
else {return `${index}:😭 ${day}`}
}
allDaysCry = allDays.map(cryExceptSun)
// allDaysCry = ["0:😭 MON", "1:😭 TUE", "2:😭 WED", "3:😭 THU", "4:😭 FRI", "5:😭 SAT", "6:😄 SUN"]
const exceptSun = day => day !=="SUN";
allDaysExceptSun = allDays.filter(exceptSun)
// allDaysExceptSun = ["MON", "TUE", "WED", "THU", "FRI", "SAT"]
이 게시물은 제가 자바스크립트를 공부하면서 계속 내용이 업데이트 되어갈 예정입니다.
무엇이든 자바스크립트에 대해 기본적인 것이 모르겠거나 헷갈린다면, MDN javascirpt를 보시면 큰 도움이 된답니다.
'Programming > Web 개발' 카테고리의 다른 글
[울산 코로나맵 재오픈] 울산 확진자 동선만! 편하게 확인하세요 (1) | 2020.12.11 |
---|---|
MongoDB 유용한 명령어 정리. (0) | 2020.05.05 |
[JS ES6] var/ let /const 차이점 (0) | 2020.03.31 |
Amazon lightsail 을 활용한 Django 장고 프로젝트 배포하기 (1) (1) | 2020.03.27 |
마크다운 작성하기 (README.md 작성) (0) | 2020.03.23 |