function test(){
return 123;
}
분명히 이것은 함수 선언입니다. 다음은 어떻습니까?
var b=function(){return 123}; 🎜>
모두가 이것을 의심합니다. 함수에 이름이 없고 그냥 익명 함수이므로 선언이 아닌 것 같습니다.
var b=function test. (){return 123};
그렇다면 "아니오"라고 대답하겠습니다.
alert(test)
var b=function test; (){return 123};
IE 이외의 모든 js 구현에서 테스트할 수 있으며, 이 경우 정의되지 않은 테스트 오류가 보고됩니다.
var b=function test(){return 123};
alert( b);
alert(test)
는 test(){...}의 toString 결과를 표시합니다. 두 번째 경고는 여전히 비정상입니다. 즉, 여기서 function test(){return 123}은 명령문이 아니라 함수 개체입니다. 따라서 함수 개체는 b에 바인딩됩니다. 선언과 같이 기본적으로 테스트 이름을 지정합니다.
alert(test)
var b=function test(){return 123}; 🎜>
ie는 함수를 표시합니다. 즉 바보이므로 별도의 함수 문과 = 오른쪽의 함수 개체를 구분합니다. 또한 IE는 function String.prototype.test와 같은 문도 지원합니다. (){...}. IE의 js에는 버그가 많다는 것을 알 수 있습니다. Wilson이 es4를 지원하려면 실제로 버그가 수정된 버전인 es3.1을 만들어야 합니다.