[자 바스 크 립 트 고급 기술] 변경 방지 대상 + 고급 타이머
4267 단어 JavaScript
1. 변경 방지 대상
1 、 대상 확장 불가
Object. preventExtensions (): 대상 에 게 새로운 속성 과 방법 을 추가 할 수 없습니다.Object. isExtensible (): 대상 을 확장 할 수 있 는 지 확인 대상 에 새 멤버 를 추가 할 수 는 없 지만 기 존 멤버 는 영향 을 받 지 않 고 기 존 멤버 를 수정 하고 삭제 할 수 있다.
2. 밀봉 대상
Object. seal (): 대상 을 밀봉 대상 으로 설정 합 니 다. 밀봉 대상 은 확장 할 수 없고 기 존 속성 과 방법 을 삭제 할 수 없 지만 속성 은 Object. isSealed () 를 수정 할 수 있 습 니 다. 대상 이 밀봉 되 었 는 지 확인 합 니 다.
3. 동결 대상
Object. freeze (): 대상 을 동결 대상 으로 설정 합 니 다. 동결 대상 은 확장 할 수 없고 밀봉 되 어 있 습 니 다. 또한 대상 속성 은 Object. isFrozen () 을 수정 할 수 없습니다. 정상 대상 이 동결 되 었 는 지 여부 입 니 다.
2. 고급 타이머
타이머 에 대해 중요 한 문 제 는 지정 한 시간 간격 이 언제 타이머 코드 를 대기 열 에 추가 하 는 지, 코드 를 언제 실행 하 는 지 를 나타 내 는 것 입 니 다.
먼저 setTimeout () 과 setInterval (): SetInterval 을 사용 하 는 것 은 지연 함수 setTimeout 을 설정 하 는 것 과 유사 합 니 다.setTimeout 은 일정 시간 지연 시 키 고 어떤 조작 을 진행 합 니 다.setInterval 은 코드 를 지정 한 시간 이 지나 면 한 번 씩 실행 할 수 있 습 니 다.setTimeout ("function", time): ID 를 되 돌려 줍 니 다. 이 타 이 머 를 지 울 수 있 습 니 다.setInterval ("function", time): clearInterval () 의 인자 로 ID 를 되 돌려 줍 니 다.SetInterval 은 자동 으로 중복 되 며 setTimeout 은 중복 되 지 않 습 니 다.
1. 반복 되 는 타이머
setInterval () 은 두 가지 문제 가 있 습 니 다. (1) 일부 간격 은 건 너 뜁 니 다.(2) 여러 타이머 의 코드 실행 사이 의 간격 이 예상 보다 작 을 수 있 습 니 다.해결 방법: 체인 호출 setTimeout (). 함수 가 실 행 될 때마다 새로운 타 이 머 를 만 듭 니 다. 이렇게 하면 이전 타 이 머 코드 가 실 행 될 때 까지 대기 열 에 새로운 타 이 머 코드 를 삽입 하지 않 고 정확 한 간격 이 없 도록 합 니 다.
setTimeout(function(){
//code
setTimeout(arguments.callee,interval)
},interval)
2. 배열 블록
스 크 립 트 가 장시간 실행 되 는 문 제 는 보통 다음 과 같은 원인 으로 인해 발생 합 니 다. (1) 너무 길 고 깊 은 함수 호출 (2) 을 통 해 대량의 순환 을 진행 합 니 다. 처리 가 동기 화 되 지 않 고 데이터 도 순서대로 완성 되 지 않 으 면 배열 블록 을 나 누 는 방법 을 사용 하여 타이머 로 순환 을 구분 할 수 있 습 니 다.
배열 블록 의 기본 적 인 사고: 처리 할 항목 을 위해 대기 열 을 만 든 다음 타이머 로 다음 처리 할 항목 을 꺼 내 처리 한 다음 다른 타 이 머 를 설정 합 니 다.
function arrayChunk (array,process,context,delay) {
if(delay) {
interval = delay;
} else {
interval = 100;
}
setTimeout(function () {
var item = array.shift();//
process.call(context,item);//
if (array.length > 0) {// ,
setTimeout(arguments.callee,interval);
}
},interval);
}
var data = ["Hello","I","am","vickygu",",","I","am","so","glad","today"];
function printValue (item) {
var arrayDiv = document.getElementById("arrayDiv");
arrayDiv.innerHTML += item + " ";
}
arrayChunk(data,printValue,null,200);
이렇게 하면 200 ms 마다 단 어 를 인쇄 할 수 있다.
3. 함수 절 류
지난 블 로 그 를 만나다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.