>웹 프론트엔드 >JS 튜토리얼 >JS 타이머 구현 방법

JS 타이머 구현 방법

一个新手
一个新手원래의
2017-10-06 10:42:483044검색

JS 타이머 매개변수 분석 및 실제 질문

HTML5 Academy-Code Craftsman: 타이머의 첫 번째 매개변수에는 함수 이름, 익명 함수, JS 코드 문자열 및 일부 인터뷰 질문 등 여러 가지 작성 방법이 포함되어 있습니다. "함수 호출"을 작성하는 중입니다.

그렇다면 이렇게 다양한 글쓰기 방식은 무엇을 의미하나요? 타이머에 나타나는 첫 번째 매개변수는 어디에서 생성됩니까?

타이머의 첫 번째 매개변수

함수 이름을 쓰는 방법

이 방법은 고정된 밀리초 후에 이 함수 이름을 가진 함수가 실행 대기열에 추가된다는 의미입니다. 실행합니다.

JS 타이머 구현 방법

문자열 형식의 작성 방법

함수에 매개변수가 있을 때 많은 사람들이 이 호출 방법을 사용합니다.

JS 타이머 구현 방법

setTimeout과 setInterval 모두 문자열을 첫 번째 매개변수로 허용할 수 있지만 이 작성 방법은 권장되지 않습니다. 이유는 실행이 가능하도록 코드 실행 시 eval 메소드를 통해 문자열이 변환되기 때문입니다.

eval 메서드의 기능은 문자열을 JS로 실행하는 것입니다. eval은 많은 문제를 해결하고 큰 효과를 발휘할 수 있지만 성능 문제, 보안 문제, JS 엄격 모드와 비엄격 모드 간의 차이점으로 인해 널리 비판을 받아왔습니다.

이러한 단점으로 인해 많은 개발자는 프로젝트와 코드에서 이를 사용하지 않으려고 합니다.

익명 함수 작성 방법

함수에 전달할 매개변수가 있지만 문자열 작성 방법을 사용할 수 없는 경우 익명 함수 작성 방법이 유용합니다.

JS 타이머 구현 방법

함수 호출 작성 방법

이 작성 방법 자체가 잘못되어 실제 개발에서는 찾아보기가 거의 불가능합니다. 물론 인터뷰에서 가끔 "구덩이"로 등장하기도 하는데...

JS 타이머 구현 방법

여기서 첫 번째 함수는 타이머 코드 라인이 실행되면 바로 실행되며, 반환되는 것은 h5course 함수의 반환 값입니다. , 기능 자체가 아닙니다. 함수가 정의되지 않은 기본 반환 값을 반환하는 경우 setInterval은 오류를 보고하지 않습니다.

첫 번째 매개변수의 범위 소유권

타이머의 첫 번째 매개변수는 전역 범위에서 실행되므로 함수의 'this'가 이 전역 개체를 가리킵니다.

JS 타이머 구현 방법

연산 결과는 true입니다

JS 타이머 구현 방법

실행 결과는 true입니다

타이머를 사용하여 실제 면접 질문을 연습해 봅시다

각 인쇄물의 결과는 무엇입니까?

JS 타이머 구현 방법

팁: 답변은 기사 하단에서 확인하세요

방법 "codesmith"라는 단어가 인쇄되는 데 시간이 오래 걸리나요?

JS 타이머 구현 방법

팁: 답은 기사 하단에서 찾을 수 있습니다.

다음 코드가 어떻게 실행되는지 알려주세요

JS 타이머 구현 방법

팁: 답은 글 하단에 있습니다

한마디로, 한마디로

실행할 함수에 매개변수가 없을 경우 함수명을 이용해 직접 호출하면 됩니다

매개변수를 전달해야 할 때 콜백 함수, 문자열을 매개변수로 사용하지 말고, 익명 함수를 매개변수로 사용하고, 익명 함수 내에서 콜백 함수를 실행하세요.

해당 함수는 전역 범위에서 실행됩니다

3가지 실제 면접 질문에 대한 답변

첫 번째 질문: 먼저 10을 출력하고 약 1초 후에 10 10을 동시에 출력합니다.

두 번째 질문: 약 1000밀리초(약 1초)

세 번째 질문: 함수가 실행되면 두 li의 배경색이 즉시 빨간색으로 설정됩니다. 약 5000밀리초 후에 콘솔에서 오류가 발생합니다(두 개의 오류. ), 오류 내용은 "빨간색은 정의되지 않았습니다"입니다.

매일 행복하세요

삶이 힘들고 코딩도 쉽지 않지만 웃는 것을 잊지 마세요!

JS 타이머 구현 방법

이 사진은 "[뷰티] 리즈 크레모(작가)"의 책 "오늘 너무 아름다워요"에 나오는 사진입니다

위 내용은 JS 타이머 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.