继上次测试你的JavaScript能力–推荐测试一下之后又一个Javascript测试题,这次的更全面些,前14道和上次一样,这次一共26道题,都带有答案。
希望对学习JavaScript的同学有帮助。
Javascript QUIZ [Javascript问答测验]
整理了一些Javascript的小测试,可以试着先不看结果做一下。
-
(function(){ return typeof arguments; })();
-
var f = function g(){ return 23; }; typeof g();
-
var y = 1, x = y = typeof x; x;
-
(function(x){ delete x; return x; })(1);
-
(function f(f){ return typeof f(); })(function(){ return 1; });
-
var foo = { bar: function() { return this.baz; }, baz: 1 }; (function(){ return typeof arguments[0](); })(foo.bar);
-
var foo = { bar: function(){ return this.baz; }, baz: 1 } typeof (f = foo.bar)();
-
var f = (function f(){ return "1"; }, function g(){ return 2; })(); typeof f;
-
var x = 1; if (function f(){}) { x += typeof f; } x;
-
var x = [typeof x, typeof y][1]; typeof typeof x;
-
(function(foo){ return typeof foo.bar; })({ foo: { bar: 1 } });
-
(function f(){ function f(){ return 1; } return f(); function f(){ return 2; } })();
-
function f(){ return f; } new f() instanceof f;
-
with (function(x, undefined){}) length;
-
var num1 = 5, num2 = 10, result = num1+++num2;
-
var x = 5, o = { x: 10, doIt: function doIt(){ var x = 20; setTimeout(function(){ alert(this.x); }, 10); } }; o.doIt();
-
var num1 = "10", num2 = "9"; num1 < num2; +num1 < num2; num1 + num2; +num1 + num2;
-
var message = "Hello world!"; message.substring(1, 4); message.substr(1,4);
-
var o = { x: 8, valueOf: function(){ return this.x + 2; }, toString: function(){ return this.x.toString(); } }, result = o < "9"; alert(o); result;
-
if (!("a" in window)) { var a = 1; } alert(a);
-
var a = 1, b = function a(x) { x && a(--x); }; alert(a);
-
function a(x) { return x * 2; } var a; alert(a);
-
function b(x, y, a) { arguments[2] = 10; alert(a); } b(1, 2, 3);
-
function a() { alert(this); } a.call(null);
-
(function(){ a = function(){ reuturn 1; }; function a(){return 2;} var a; return a; })()();
-
parseInt('06'); parseInt('08');
了解更多,请阅读:
Tags: JavaScript, 测试
var f = function g(){ return 23; };
typeof g();
这一个,你确定是Error吗?
g函数返回的是一个数字23,所以typeof 23的结果是 number.
(测试环境XP+IE6)
很抱歉,这道测试题确实有些歧义,在IE中是number,但在其他浏览器中都是Error。至于其他浏览器为什么不支持这种定义方法,我也讲不清楚。
看看函数表达式