首页 > 开发 > Javascript > 正文

JavaScript Perfection kill 测试及答案

2020-02-28 04:03:44
字体:
来源:转载
供稿:网友
下面是选择题:官方地址是 http://perfectionkills.com/javascript-quiz/
代码如下:
1.
(function(){
return typeof arguments;
})();
“object”
“array”
“arguments”
“undefined”
2.
var f = function g(){ return 23; };
typeof g();
“number”
“undefined”
“function”
Error
3.
(function(x){
delete x;
return x;
})(1);
1
null
undefined
Error
4.
var y = 1, x = y = typeof x;
x;
1
“number”
undefined
“undefined”
5.
(function f(f){
return typeof f();
})(function(){ return 1; });
“number”
“undefined”
“function”
Error
6.
var foo = {
bar: function() { return this.baz; },
baz: 1
};
(function(){
return typeof arguments[0]();
})(foo.bar);
“undefined”
“object”
“number”
“function”
7.
var foo = {
bar: function(){ return this.baz; },
baz: 1
}
typeof (f = foo.bar)();
“undefined”
“object”
“number”
“function”
8.
var f = (function f(){ return "1"; }, function g(){ return 2; })();
typeof f;
“string”
“number”
“function”
“undefined”
9.
var x = 1;
if (function f(){}) {
x += typeof f;
}
x;
1
“1function”
“1undefined”
NaN
10.
var x = [typeof x, typeof y][1];
typeof typeof x;
“number”
“string”
“undefined”
“object”
11.
(function(foo){
return typeof foo.bar;
})({ foo: { bar: 1 } });
“undefined”
“object”
“number”
Error
12.
(function f(){
function f(){ return 1; }
return f();
function f(){ return 2; }
})();

Error (e.g. “Too much recursion”)
undefined
13.
function f(){ return f; }
new f() instanceof f;
true
false
14.
with (function(x, undefined){}) length;

undefined
Error


下面是个人的解答:

代码如下:
// Q1
(function(){
return typeof arguments; //很显然这里应该返回的是 "object"
})();
// Q2
var f = function g(){ return 23; };
typeof g(); //在ie下,这里返回的是 "number",但是在ff下,却是Error(g未定义)
// Q3
(function(x){
delete x; //应该说局部变量是不能被delete的
return x; //所以这里返回1
})(1);
/*
赠送:
delete与变量,有以下关系:
1、对象预定义的属性是不能被delete的;2、通过prototype指定的属性是不能delete的
//关于2,可以理解成只能删除动态附加给对象实例的属性?
3、var定义的(我个人理解是局部变量)是不能被delete的;4、function定义的变量及参数(相当于局变量)是不能被删除的。
关于delete的介绍,这里有:http://tech.idv2.com/2008/01/09/javascript-variables-and-delete-operator/
*/
// Q4
var y = 1, x = y = typeof x;
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表