摘抄的面试题
1. JavaScript的call和apply方法是做什么的,两者有什么区别?
2. 下面这段js代码执行完毕后 x, y, z 的值分别是多少?
var x = 1, y = z = 0; function add(n){ return n = n + 1; } y = add(x); function add(n){ return n = n + 3; } z = add(x);
3. 下面代码中console.log的结果是[1,2,3,4,5]的选项是:
A: function foo(x){ console.log(arguments); return x; } foo(1,2,3,4,5); B: function foo(x){ console.log(arguments); return x; }(1,2,3,4,5) C: (function foo(x){ console.log(arguments); return x; })(1,2,3,4,5) D: function foo(){ bar.apply(null, arguments); } function bar(x){ console.log(arguments); } foo(1,2,3,4,5);
4. 请问一下表达式的结果是什么?
parseInt(3, 8); parseInt(3, 2); parseInt(3, 0); A: 3, 3, 3 B: 3, 3, NaN C: 3, NaN, NaN D: other
5. 以下哪些是JavaScript语言typeof可能返回的结果
A: string B: array C: object D: null
6. 看看下面alert的结果是什么?
function b(x, y, a) { arguments[2] = 10; alert(a); } b(1, 2, 3); 如果函数体改成下面,结果又会是什么? a = 10; alert(arguments[2]);
7. 写出以下程序的执行结果:
var f = ( function f() { return "1"; }, function g() { return 2; } )(); typeof f;
8. 写出以下程序的执行结果:
var x = 1; if ( function f(){} ) { x += typeof f; } console.log(x);
9. 以下哪些表达式的结果为true
A: undefined == null B: undefined === null C: isNaN("100") D: parseInt("1a") == 1
10. 写出以下程序的执行结果
var foo = '123'; function print() { var foo = '456'; this.foo = '789'; console.log(foo); } print();
11. 写出代码输出的结果
var name = '222'; var a = { name: '111', say: function () { console.info( this.name ); } } var fun = a.say; fun(); a.say(); var b = { name: '333', say: function (fun) { fun(); } } b.say(a.say); b.say = a.say; b.say()
12. 运行test() 和 new test() 的结果分别是什么?
var a = 5; function test(){ a = 0; alert(a); alert(this.a); var a; alert(a); }
13. 写出以下程序的执行结果
function print(){ console.log(foo); var foo = 2; console.log(foo); cosnole.log(hello); } print();
14. 写出以下程序的执行结果
function print() { var test; test(); function test(){ console.log(1); } } print();
15. 写出以下程序的执行结果
function print() { var x = 1; if(x == "1") console.log('One!'); if(x === '1') console.log('Two!'); } print();
16. 写出以下程序的执行结果
var bar = { a: '002' } function print(){ bar.a = 'a'; Object.prototype.b = 'b'; return function inner(){ console.log(bar.a); console.log(bar.b); } } print()();
17. 以下程序运行的结果是
(function(){ return typeof arguments; }()); A: "object" B: "array" C: "arguments" D: "undefined"
18. 以下程序运行的结果是
var f = function g() { return 23; }; typeof g(); A: "number" B: "undefined" C: "function" D: Error
19. 以下程序运行的结果是
(function(x){ delete x; return x; }(1)); A: 1 B: null C: undefined D: Error
20. 以下程序运行的结果是
var y = 1, x = y = typeof x; console.log(x); A: 1 B: "number" C: undefined D: "undefined"