http://perfectionkills.com/javascript-quiz/
다음은 이 주제에 대해 제가 이해한 것입니다. 다른 의견이나 통찰력이 있으면 언제든지 의견을 남겨주세요.
(function(){
인수 유형 반환;
})() ;
이 질문은 비교적 간단합니다. 모든 사람이 인수를 배열이라고 생각하지 않는 한 괜찮습니다.
반환은 객체입니다.
조준 책을 살펴보면 다음과 같은 질문에 이 함정이 많이 등장합니다. >반환은 정의되지 않습니다.
코드 복사
})(1);
자바스크립트의 삭제는 소개되거나 지정된 객체가 아니라 객체 자체를 삭제합니다.
/*
데이터
삭제 연산자
객체에서 속성을 삭제하거나 배열에서 요소를 삭제합니다.
표현식 삭제
표현식 매개변수는 유효한 JScript 표현식이며 일반적으로 속성 이름 또는 배열 요소입니다
따라서 여기에서 형식 매개변수를 변경하는 것은 이와 관련이 없습니다.
*/
삭제에 대한 구체적인 분석에 대해서는 정원 친구가 그 질문 부분에 대한 원문 설명을 해줬는데 제가 부주의해서 읽지 않았네요 ㅎㅎ
http://perfectionkills.com/understanding-delete/
1번으로 돌아갑니다.
코드 복사
이 부분에는 약간의 함정이 있습니다.
x= 정의되지 않은 경우에는 typeof가 실제로 typeof입니다. "정의되지 않음". ㅎㅎ
반환 물론 문자열입니다.
코드 복사
코드 복사
코드는 다음과 같습니다.
var foo = {
코드 복사
코드는 다음과 같습니다. = {
bar: function(){ return this.baz; },
baz: 1
}
typeof (f = foo.bar)()
위 질문으로 보면 이 질문을 이해할 수 있습니다.
코드 복사
코드는 다음과 같습니다.
var f = (function f(){ return " 1"; }, function g(){ return 2; })(); 🎜>
여기서 중요한 것은 ()의 반환입니다. ()는
반환번호
코드 복사
x
if에 있는 것들은 실제 존재(객체)이기 때문에 확실히 실행될 수 있습니다. null|underfined 객체는 if 아래에서 계속될 수 있습니다. 그러나 원칙적으로 f는 존재하지 않습니다. .
그래서 1undefine이 반환됩니다.
var x = [typeof x, typeof y][1];
typeof typeof x
여기서는 typeof y ,undefined입니다. 정의되지 않음"
"문자열"을 반환합니다.
(function(foo){
return typeof foo.bar;
})({ foo: { bar: 1 } })
헤헤, 여기요 작은 함정, 너무 빨리 보면 쉽게 들어갈 수 있습니다.
간략한 설명, var fo = {foo:{bar:1}} function(foo){})(fo) >return typeof foo.bar ==> fo.bar의 반환 유형
따라서 "정의되지 않음"을 반환합니다.
(function f(){
function f(){ return 1; }
return f();
function f(){ return 2; }
})();
이 질문은 반환값에 대해서는 중요하지 않습니다. 이는 모든 함수를 구문 분석한 것입니다.
따라서 2를 반환합니다.
function f(){ return f; }
new f() instanceof f; 이 부분은 잘 이해가 안 되고, Bottle이 제시한 설명도 이해가 되는 것 같습니다
new f()는 새로운 객체가 아닌 f 자체를 가져오므로 f의 인스턴스가 아닙니다.
그래서 return. false.
with (function(x, undefine){}) length
with를 함수로 간주하면(alert와 동일) 이 길이는 다음과 같습니다. with의 형식 매개변수의 길이입니다.
2로 돌아갑니다.
아직 js에 관해 정리해야 할 문제가 많은 것 같습니다. Aiming은 큰 책이고 이 부분에 대한 설명은 매우 강력합니다. . 이는 사람들이 몇 가지 함정과 문제를 우회할 수 있게 해줍니다.
이러한 질문은 사람의 js 능력을 완전히 반영할 수는 없지만 최소한 js 처리가 어떻게 작동하는지 사람들에게 알릴 수 있습니다.