캡슐화: 변수나 메소드가 목적에 집중하도록 묶은 것.
추상화: 객체의 공통적인 또는 필수적인 요소들을 뽑아내는 것.
다형성: 같은 이름으로의 실행 결과가 다양한 객체를 활용하는 것.
------ override: 기존의 메소드를 재정의 overload: 이름은 같지만, 파라미터를 변경함.
상속: 상위 클래스의 객체를 하위 클래스의 객체가 상속하여 기능 확장및 변경. (재사용)
R=int(input())
n=[]
for _ in range(R):
cnt = int(input())
for _ in range(cnt):
n.append(list(input().split()))
alcohol = sorted(n, key = lambda x: -int(x[1]))
print(alcohol[0][0])
k=input()
a=[]
kLen=len(k)
for i in range(kLen):
a.append(k[kLen-i-1:])
a.sort()
for i in a:
print(i)
<form id="todo-form">
<input id="todo-input" type="text" placeholder="Write your todo List and press Enter!">
</form>
const todoForm=document.querySelector("#todo-form");
const todoList=document.querySelector("#todo-list");
const todoInput=document.querySelector("#todo-input");
function handleTodo(event){
event.preventDefault();
}
todoForm.addEventListener("submit",handleTodo);
todoInput.addEventListener("click",handleTodo);
addEventListener을 이용할때 Form에서는 submit, input text에서는 click을 해야 정상적으로 handleTodo가 작동된다.
text 입장에서는 단순히 input 된 것이지만, form 입장에선 내부의 요소가 submit됬다고 이해.
JSON.stringify()
()안에 무엇을 넣든 string으로 변환시킴.
JSON.parse()
()안에 들어간 string을 js규칙에 맞춰 변환시킴.
JSON.stringify([1, 2, 3, 4]); --> "[1, 2, 3, 4]"
JSON.parse("[1, 2, 3, 4]"); --> [1, 2, 3, 4]
localStorage
에는 리스트 등은 저장할 수 없고, 오직 string만 저장할 수 있어서, 이때 유용하게 JSON을 쓸 수 있다.
if (savedTodo!=null){
parsedTodo.forEach((element) => {
console.log(element));
}
}
위 코드는
function say(event){
console.log(event);
}
if (savedTodo!=null){
const parsedTodo = JSON.parse(savedTodo);
parsedTodo.forEach(say);
}
이 코드를 간략히 줄인것이다.
function을 만드는 대신 forEach((element)=>{~~~element})
을 이용해 element도 넘겨줄수있다.
이때 =>
를 화살표 함수 라고 한다.