下面是选择题:官方地址是 http://perfectionkills.com/javascript-quiz/
1.
(function(){
인수 유형 반환;
})();
“객체”
“배열”
“인수”
“정의되지 않음”
2.
var f = function g(){ return 23; };
g() 유형;
“숫자”
“정의되지 않음”
“함수”
오류
3.
(function(x){
x 삭제;
x 반환;
})(1);
1
null
정의되지 않음
오류
4.
var y = 1, x = y = x 유형;
x;
1
“숫자”
정의되지 않음
“정의되지 않음”
5.
(function f(f){
f()의 반환 유형;
})(function(){ return 1; });
“숫자”
“정의되지 않음”
“함수”
오류
6.
var foo = {
bar: function() { return this.baz; },
baz: 1
};
(function(){
인수 유형 반환[0]();
})(foo.bar);
“정의되지 않음”
“객체”
“숫자”
“함수”
7.
var foo = {
bar: function(){ return this.baz; },
baz: 1
}
typeof (f = foo.bar)();
“정의되지 않음”
“객체”
“숫자”
“함수”
8.
var f = (function f(){ return "1"; }, function g(){ return 2; })();
f 유형;
“문자열”
“숫자”
“함수”
“정의되지 않음”
9.
var x = 1;
if (function f(){}) {
x = typeof f;
}
x;
1
“1개 함수”
“1개 정의되지 않음”
NaN
10.
var x = [x 유형, y 유형][1];
typeof x 유형;
“숫자”
“문자열”
“정의되지 않음”
“객체”
11.
(function(foo){
foo.bar의 반환 유형;
})({ foo: { bar: 1 } });
“정의되지 않음”
“객체”
“숫자”
오류
12.
(함수 f(){
함수 f(){ return 1; }
return f();
function f(){ return 2; }
})();
오류(예: “너무 많은 재귀”)
정의되지 않음
13.
함수 f(){ return f; }
new f() 인스턴스of f;
참
거짓
14.
(함수(x, 정의되지 않음){}) 길이;
정의되지 않음
오류
下面是个人的解答:
// Q1
(function(){
return typeofargs; //분명히 여기서 반환되어야 하는 것은 "객체"입니다.
})()
// Q2
var f = function g(){ return 23;
typeof g(); //즉, 여기서 반환되는 것은 "number"이지만, ff에서는 Error입니다(g는 정의되지 않음) )
// Q3
(function(x){
delete x; //지역 변수는 삭제할 수 없다고 해야 합니다
return x; //그래서 여기서는 1을 반환합니다
} ) (1);
/*
선물:
삭제와 변수는 다음과 같은 관계를 갖습니다.
1. 객체의 미리 정의된 속성은 삭제할 수 없습니다. 삭제 삭제의
// 2번에 대해서는 객체 인스턴스에 동적으로 부착된 속성만 삭제할 수 있다고 이해하면 되나요?
3. var로 정의된 변수(개인적으로 로컬 변수로 이해함)는 삭제할 수 없습니다. 4. 함수로 정의된 변수 및 매개변수(로컬 변수와 동일)는 삭제할 수 없습니다.
삭제에 대한 소개는 다음을 참조하세요. http://tech.idv2.com/2008/01/09/javascript-variables-and-delete-operator/
*/
// Q4
var y = 1, x = y = typeof x;
x; //분명히 x는 정의되지 않아야 합니다
// Q5
(function f(f){
return typeof f( ); //여기서 f는 전달된 익명 함수를 나타내므로 "숫자"(즉, 1)여야 합니다.
})(function(){ return 1;
// Q6
var foo = {
bar: function() { return this.baz },
//그러나 호출 후 여기에서는 bar를 가리키고 bar에는 baz 속성이 없으므로 다음과 같습니다. 정의되지 않음
baz: 1
};
(function(){
인수 유형 반환[0](); //인수[0]은 foo.bar입니다
})(foo. bar );// Q7
var foo = {
bar: function(){ return this.baz }, //질문 6과 동일
baz: 1
}
typeof (f = foo.bar)();
// Q8
var f = (function f(){ return "1"; }, function g(){ return 2; })();
//js의 부호 연산자를 두 번째 함수라고 부르므로 반환 값은 "number"입니다.
typeof f
// Q9
var x = 1; f(){}) {
x = typeof f; //즉, 1은 함수이고, ff는 1입니다.
}
x
// Q10
var x = [typeof x, typeof y][1]; //x="undefine"
typeof x; //x는 문자열이므로 "string"이어야 합니다.
// Q11
(function( foo){
return typeof foo.bar
//매우 모호한 질문입니다. foo 매개변수는 전달된 json 객체를 가리키고 json 객체에는 foo 속성이 있습니다.
//따라서 여기서 foo.foo.bar 유형이면 "number"입니다
//단, foo 매개변수 자체에는 bar 속성이 없으므로 "undefine"입니다
})({ foo: { bar: 1 } });
// Q12
(function f(){
function f(){ return 1; }
return f(); / / 함수 정의, 후자가 전자를 재정의하므로 2입니다.
function f(){ return 2 }
})()
// Q13
function f(){ return f ; }
new f() instanceof f;//new f()는 실제로 f와 동일합니다. 둘 다 함수이므로 둘 다 false입니다.
//If function f(){ return 1;}, 반환되는 것은
// Q14
with (function(x, undefine){}) length
//쓰면 명확해집니다. 이렇습니다. {}){length;}
//length는 함수의 형식 매개변수 개수를 의미하므로 2
입니다.