이 글은 주로 js 재귀와 타이머 관련 지식을 소개합니다. 매우 좋은 참조 값을 가지고 있습니다.
재귀: 함수가 자신을 호출할 때 형성됩니다. all 예:
Function factorial(num){ if(num<=1){ return 1; }else{ return num*factorial(num-1); } }
var anotherFactorial = factorial; factorial = null; alert(anotherFactorial)// 出错
function factorial (num){ if(num){ return 1; }else{ return num*arguments.callee; } }
arguments.callee 장점:
1. 함수를 어떻게 호출하든 문제가 발생하지 않음을 보장할 수 있습니다. 따라서 재귀 함수를 작성할 때 함수 이름을 사용하는 것보다args.callee를 사용하는 것이 항상 더 안전합니다. 오류가 보고됩니다
엄격 모드로 작성:
var factorial = (function f(){ if(num<1){ return 1; }else{ return num*f(num-1); } })
JS는 단일 스레드 언어이지만 시간 초과 호출 및 간격을 설정하여 특정 순간에 예약 코드가 실행되도록 허용합니다. 전자는 지정된 시간 후에 코드를 실행하는 반면, 후자는 지정된 시간마다 코드를 실행합니다. 매개변수: 실행될 코드 및 시간(밀리초)
//不建议传字符串,传递字符串可能导致性能损失 setTimeout("alter('hello word')", 1000); //推荐方式 setTimeout(function(){ alter("Hello world"); },1000) setInterval(function(){ alter("Hello world"); },1000)
var num = 0, max = 0;
function incrrmentNumber{
num++;
if(num < max){
setTimeout(incrrmentNumber,500);
}else{
alert("Done");
}
}
setTimeout(incrrmentNumber,500);