Review|間違った答え
21713 ワード
1.memo appコード import "./MemoList.css";
import { useState } from "react";
import "./MemoList.css";
let dummyMemo = [
{ id: 1, priority: 1, content: "코딩하기" },
{ id: 2, priority: 0, content: "운동하기" },
{ id: 3, priority: 1, content: "기타 연습하기" },
{ id: 4, priority: 0, content: "등산하기" },
];
export default function MemoList() {
const [memos, setMemos] = useState(dummyMemo);
const [filter, setFilter] = useState(false);
return (
<div className="MemoListContainer">
<div className="HeaderPart">
<h1>MEMO</h1>
</div>
<div className="MemoPart">
<div className="radioBox">
<div>
<input
type="radio"
name="filter"
onClick={() => setFilter(false)}
// *1.
></input>
전체 메모
</div>
<div>
<input
type="radio"
name="filter"
onClick={() => setFilter(true)}
></input>
중요 메모
</div>
</div>
<div className="memoBox">
{memos
.filter((memo) => {
return (filter === true) ? memo.priority === 1 : true
// if (filter === true) {
// return memo.priority === 1;
// } else {
// return true;
// } *2
})
.map((memo) => (
<MemoListEntry {...memo} key={memo.id} />
))}
// *3
</div>
</div>
</div>
);
}
function MemoListEntry(props) {
const { id, priority, content } = props;
// *4
return (
<div className="MemoListEntryContainer">
<div className="infoPart">
<div>{id}</div>
<div>{priority === 1 ? "중요" : "일반"}</div>
</div>
<div className="contentPart">
<div>{content}</div>
</div>
</div>
);
}
import "./MemoList.css";
import { useState } from "react";
import "./MemoList.css";
let dummyMemo = [
{ id: 1, priority: 1, content: "코딩하기" },
{ id: 2, priority: 0, content: "운동하기" },
{ id: 3, priority: 1, content: "기타 연습하기" },
{ id: 4, priority: 0, content: "등산하기" },
];
export default function MemoList() {
const [memos, setMemos] = useState(dummyMemo);
const [filter, setFilter] = useState(false);
return (
<div className="MemoListContainer">
<div className="HeaderPart">
<h1>MEMO</h1>
</div>
<div className="MemoPart">
<div className="radioBox">
<div>
<input
type="radio"
name="filter"
onClick={() => setFilter(false)}
// *1.
></input>
전체 메모
</div>
<div>
<input
type="radio"
name="filter"
onClick={() => setFilter(true)}
></input>
중요 메모
</div>
</div>
<div className="memoBox">
{memos
.filter((memo) => {
return (filter === true) ? memo.priority === 1 : true
// if (filter === true) {
// return memo.priority === 1;
// } else {
// return true;
// } *2
})
.map((memo) => (
<MemoListEntry {...memo} key={memo.id} />
))}
// *3
</div>
</div>
</div>
);
}
function MemoListEntry(props) {
const { id, priority, content } = props;
// *4
return (
<div className="MemoListEntryContainer">
<div className="infoPart">
<div>{id}</div>
<div>{priority === 1 ? "중요" : "일반"}</div>
</div>
<div className="contentPart">
<div>{content}</div>
</div>
</div>
);
}
2. let score = 80;
function doStuff(value) {
value = 90;
}
doStuff(score) // score의 값은?
let score = 80;
function doStuff(value) {
value = 90;
}
doStuff(score) // score의 값은?
var a = 0;
function foo() {
var b = 0;
return function() {
console.log(++a, ++b);
};
}
var f1 = foo();
var f2 = foo();
f1(); // --> 1번
f1(); // --> 2번
f2(); // --> 3번
f2(); // --> 4번
2-1
(Advanced)モジュールの有用な例:現在のステータスを覚え、最新の変更を維持します.<!DOCTYPE html>
<html>
<body>
<button class="toggle">toggle</button>
<div class="box" style="width: 100px; height: 100px; background: red;"></div>
<script>
var box = document.querySelector('.box');
var toggleBtn = document.querySelector('.toggle');
var toggle = (function () {
var isShow = false;
// TODO: ① 클로저를 반환하는 함수 작성
return function () {
// TODO: ③ isShow 변수의 상태를 변경하는 코드 작성
// isShow ? box.classList.remove('hide') : box.classList.add('hide');
box.setAttribute("class", isShow? "show" : "hidden")
// CSS 내용은 생략.
isShow = !isShow;
};
})();
// ② 이벤트 프로퍼티에 클로저 할당
toggleBtn.onclick = toggle;
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<body>
<button class="toggle">toggle</button>
<div class="box" style="width: 100px; height: 100px; background: red;"></div>
<script>
var box = document.querySelector('.box');
var toggleBtn = document.querySelector('.toggle');
var toggle = (function () {
var isShow = false;
// TODO: ① 클로저를 반환하는 함수 작성
return function () {
// TODO: ③ isShow 변수의 상태를 변경하는 코드 작성
// isShow ? box.classList.remove('hide') : box.classList.add('hide');
box.setAttribute("class", isShow? "show" : "hidden")
// CSS 내용은 생략.
isShow = !isShow;
};
})();
// ② 이벤트 프로퍼티에 클로저 할당
toggleBtn.onclick = toggle;
</script>
</body>
</html>
Reference
この問題について(Review|間違った答え), 我々は、より多くの情報をここで見つけました https://velog.io/@starry3ones/Reveiw-파트テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol