글자, 인용문, 목록, 표, 입력폼, 버튼, 이미지, 아이콘, 드롭다운 메뉴, 내비게이션 바, 버튼, 탭, 리스트, 페이지 이동 바, 알림 메시지, 썸네일, 진행 바 등을 포함
1)함수
1) break는 보통 반복문에서 사용되며, break키워드를 통해 반복문을 빠져 나올수 있도록 하는 역할을 한다.
for (let i = 0; i < 10; i++) {
if (i === 5) {
console.log(`${i}에서 멈춘다.`);
break;
}
console.log(i);
}
2) continue는 반복문에 사용되며 현재 단계를 중단하고 다음 반복문을 이어서 진행한다.
for (let i = 0; i < 10; i++) {
if (i === 5) {
console.log(`${i}에서 건너뛴다.`);
continue;
}
console.log(i);
}
3) return는 함수에서 사용하지 않으면 에러가 발생하게 된다.
function number() {
for (let i = 0; i < 10; i++) {
if (i === 5) {
return i;
}
console.log(i);
}
}
console.log(`number라는 함수가 ${number()} 입니다.`);
$.get('url 주소/products/1', function(response) { // ... });
2) Promise 동작원리
async function f() {
return 1;
}
async function f() {
return 1;
}
f().then(alert); // 1
let value = await promise;
async function f() {
let promise = new Promise((resolve, reject) => {
setTimeout(() => resolve("완료!"), 1000)
});
let result = await promise; // 프라미스가 이행될 때까지 기다림 (*)
alert(result); // "완료!"
}
f();
- 함수를 호출하고, 함수 본문이 실행되는 도중에 (*)로 표시한 줄에서 실행이 잠시 '중단’되었다가 프라미스가 처리되면 실행이 재개 한다.
- 프라미스 객체의 result 값이 변수 result에 할당된다.
- 1초 뒤에 '완료!'가 출력
function makeFunc() {
var name = "Mozilla";
function displayName() {
alert(name);
}
return displayName;
}
var myFunc = makeFunc();
//myFunc변수에 displayName을 리턴함
//유효범위의 어휘적 환경을 유지
myFunc();
//리턴된 displayName 함수를 실행(name 변수에 접근)
- myFunc은 makeFunc이 실행 될 때 생성된 displayName 함수의 인스턴스에 대한 참조
- displayName의 인스턴스는 변수 name 이 있는 어휘적 환경에 대한 참조를 유지
- myFunc가 호출될 때 변수 name은 사용할 수 있는 상태로 남게 되고 "Mozilla" 가 alert 에 전달
function makeAdder(x) {
var y = 1;
return function(z) {
y = 100;
return x + y + z;
};
}
var add5 = makeAdder(5);
var add10 = makeAdder(10);
//클로저에 x와 y의 환경이 저장됨
console.log(add5(2)); // 107 (x:5 + y:100 + z:2)
console.log(add10(2)); // 112 (x:10 + y:100 + z:2)
//함수 실행 시 클로저에 저장된 x, y값에 접근하여 값을 계산
단일 인자 x를 받아서 새 함수를 반환하는 함수 makeAdder(x)를 정의했다. 반환되는 함수는 단일인자 z를 받아서 x와 y와 z의 합을 반환한다.
add5, add10 두 개의 새로운 함수들을 만들기 위해 makeAdder함수 공장을 사용
하나는 매개변수 x에 5를 더하고 다른 하나는 매개변수 x에 10을 더한다.
add5와 add10은 둘 다 클로저이며, 같은 함수 본문 정의를 공유하지만 서로 다른 맥락(어휘)적 환경을 저장한다.
[https://react-bootstrap.github.io/layout/grid] (반응형 웹)
[https://lsm0823.github.io/Htmlsite/] (lsm 웹페이지)
github로 웹사이트 만들기