[题目] JavaScript 练习题目(一) [0-20]

时间:2023-02-24 08:26:44

 摘抄的面试题    
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"