Let's Get IT 자바스크립트 프로그래밍
const innerFunc1 = func('hello');
const innerFunc2 = func('javascript');
const innerFunc3 = func();
innerFunc1(); // hello
innerFunc2(); // javascript
innerFunc3(); // undefined
func처럼 함수를 만드는 함수를 고차 함수(high order function)라고 한다.
const func = (msg) => {
return () => {
console.log(msg);
};
};
화살표 함수 문법에 따라 함수의 본문에서 바로 반환되는 값이 있으면 {와 return을 생략할 수 있다.
//고차함수에서 {와 return 생략
const func = (msg) => () => {
console.log(msg);
};
eval('1+2'); //3
문자열을 그대로 실행한다.
해킹 위험있어서 사용하지않음
//뽑아낼 숫자풀 배열
const numbers = [];
for (let n = 1; n <= 9; n += 1) {
numbers.push(n);
}
//numbers 배열에서 랜덤한 인덱스로 숫자를 선택해 answer에 넣고 그 인덱스는 number배열에서 잘라냄
const answer = [];
for (let n = 0; n <= 3; n += 1) { // 네 번 반복
const index = Math.floor(Math.random() * numbers.length); // numbers 길이에 따라
answer.push(numbers[index]);
numbers.splice(index, 1);
}
보통 입력창이 있으면 폼 태그로 감싸서 submit 이벤트를 사용하는 것이 좋습니다. 그래야 버튼을 클릭하지 않고도 Enter
를 눌러 값을 제출할 수 있습니다.
$form.addEventListener('submit', (event) => {
event.preventDefault(); //폼태그 기본동작 취소(새로고침)
//실행 내용
});
Set객체 사용 MDN문서
function checkInput(input) {
if (new Set(input).size !== 4) { // 중복된 숫자가 있는가
return alert('중복되지 않게 입력해 주세요.');
}
}
new Set('1231'); //Set내부에 1,2,3만 들어감
//그 후 Set요소의 개수를 세면 중복이 있는지 검사 가능
//Set요소의 개수를 구할때는 length가 아닌 size를 사용