Q1 첫 번째는 정의되지 않았습니다. hello가 functionName으로 간주될 수 있는 메서드를 가리키기 때문입니다. 따라서 이것은 window this.p //window.p//첫 번째 선언입니다. 창.p, 할당되지 않음, 값이 차이가 없음this.p; //window.p//首先声明一个window.p,未赋值,值是undifined
핵심은 미확정이 하나 더 있다는 것! 🎜두 번째 정의되지 않은 항목 앞에 화살표가 있습니다. 🎜m 함수 //"test"에 return 'test'를 추가하세요.🎜그래서 이 화살표는 return 이후의 값으로 간주할 수 있습니다. m 함수 반환 없음, 반환 값이 미정됨🎜🎜요약🎜: 이전 화살표는 콘솔에 고유합니다. 명령줄 디버깅 중에는 아무도 없습니다.🎜콘솔이 먼저 함수를 실행합니다. , 그런 다음 함수 실행 결과를 출력합니다(예: 다른 값을 할당하는 데 사용됨)🎜
🎜🎜Q2🎜🎜 첫 번째는 정의되지 않았습니다. hello는 b로 간주될 수 있는 객체를 가리키기 때문입니다. 따라서 this.p🎜
자동 답변, 이전 도움말 요약:
Q1
첫 번째는 정의되지 않았습니다. hello가 functionName으로 간주될 수 있는 메서드를 가리키기 때문입니다. 따라서 이것은 window
this.p //window.p
//첫 번째 선언입니다. 창.p, 할당되지 않음, 값이 차이가 없음this.p; //window.p
//首先声明一个window.p,未赋值,值是undifined关键是多了一个undifined!
第二个undefined,前面有个箭头,
在 m 函数里加一个 return 'test',
//"test"
所以,这个箭头可以看做return后面的值,这里m函数没有return,没有返回值就是undifined
总结:前面这个箭头,是控制台独有的,命令行调试时没有
控制台先是执行函数,然后是,输出函数的执行结果(比如再用来 给别的赋值)
Q2
핵심은 미확정이 하나 더 있다는 것! 🎜두 번째 정의되지 않은 항목 앞에 화살표가 있습니다. 🎜m 함수第一个undefined,因为hello指向了一个对象,可以看做b,所以
this.p; //b.p
//"test"
에 return 'test'를 추가하세요.🎜그래서 이 화살표는 return 이후의 값으로 간주할 수 있습니다. m 함수 반환 없음, 반환 값이 미정됨🎜🎜요약🎜: 이전 화살표는 콘솔에 고유합니다. 명령줄 디버깅 중에는 아무도 없습니다.🎜콘솔이 먼저 함수를 실행합니다. , 그런 다음 함수 실행 결과를 출력합니다(예: 다른 값을 할당하는 데 사용됨)🎜 🎜🎜Q2🎜🎜 첫 번째는 정의되지 않았습니다. hello는 b로 간주될 수 있는 객체를 가리키기 때문입니다. 따라서this.p
🎜는 마지막 문의 반환 값입니다. m 함수에 반환 "테스트"를 추가해 볼 수 있나요?
개인적으로 첫 번째 undefed는 함수에 반환 값이 없기 때문이고, 두 번째 undefine은 브라우저 디버깅으로 인한 것일 수 있다고 생각합니다. 명령줄을 사용하여 디버그하고 두 번째 undef가 나타나는지 확인해 보세요.
Chrome 브라우저 콘솔을 사용하고 계십니까? 두 번째 정의되지 않은 것은 고유하며 코드와 관련이 없습니다.
var a = 1을 입력하세요.
Enter를 누르면 정의되지 않은 항목도 있습니다.
이 메소드의 this 포인터가 a 객체의 메소드 정의를 window 아래의 변수로 변경했습니다. 이때 this는 window 아래에 대한 정의가 없습니다. var hello var P가 이해할 것입니다
1.hello()에는 반환 값이 없습니다.
2.console.log() 이 함수에는 반환 값이 없습니다.
추가 질문
undefined
是js语句本身的值,剩下的就是this
.