view core-javascript/javascript-exercises/answers/function-exercises.js @ 189:2e652f4b492f javascript-exercises

Add function-exercises.js - 'arguments'.
author jf3243
date Thu, 17 Nov 2011 17:25:29 +0000
parents 41c63d83ef49
children 6e302e558f09
line wrap: on
line source

var something = null;

TEST('return value', function()
{
    var fn_1 = function(){
    };

    something = undefined;
    assert( fn_1() === something );

    var fn_2 = function(){
        // start
        return 42;
        // end
    };

    something = undefined;
    assert( fn_2() === 42 );
});


TEST('parameters', function()
{
    var something = null;

    var fn = function(a, b, c){
        // start
        return b;
        // stop
    };

    assert( fn(1, 2, 3) === 2 );
    assert( fn(4, 5, 6) === 5 );

    something = 8;
    assert( fn(7, 8) === something );

    something = 10;
    assert( fn(9, 10, 11, 12) === something );

    something = undefined;
    assert( fn(13) === something );

    something = undefined;
    assert( fn() === something );
});


TEST('arguments', function()
{
    var something = null;

    // 1
    var fn_1 = function(){
        return arguments.length;
    };

    something = 0;
    assert( fn_1() === 0 );
    something = 1;
    assert( fn_1(0) === something );
    something = 2;
    assert( fn_1(0, 0) === something );
    something = 3;
    assert( fn_1(0, 0, 0) === something );


    // 2
    var fn_2 = function(i){
        return arguments[i];
    };

    something = 0;
    assert( fn_2(0) === something );
    something = 1;
    assert( fn_2(1, 1, 2) === something );
    something = 11;
    assert( fn_2(2, 10, 11) === something );
});