array, object

by gwenaelhagenmuller

JavaScript

console.clear();

function section(str) {
    br();
    console.log("////////////////////////////////////////////");
    console.log("//  " +  str);
    console.log("////////////////////////////////////////////");
    br();
}

function warning() {
    console.log("!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!");
}
function br() {
    console.log("");
}

var curLine = 1;
function line(str, res) {
    console.log(curLine++, str, " ==> ", res);
}

section("array");

function arrayInfos(a) {
    br();
    line("variable", a);
    line("typeof", typeof a);
    line("length", a.length);
    line("Array.isArray", Array.isArray(a));
    line("instanceof Array", a instanceof Array);
}

var a1 = new Array();
var a2 = [];

arrayInfos(a1);
arrayInfos(a2);

br();
line("-- push new element", 2);

a1.push(2);
a2.push(2);

arrayInfos(a1);
arrayInfos(a2);

br();
line("-- push new element", "test");

a1.push("test");
a2.push("test");

arrayInfos(a1);
arrayInfos(a2);

br();
line("-- for loops", "");

function forLoops(a) {
    br();
    for(var i=0; i<a.length; ++i) line("[" + i + "]", a[i]);
    br();
    for(var i in a) line("[" + i + "]", a[i]);
}

forLoops(a1);
forLoops(a2);

br();
line("-- push", null);

a1.push(null);
a2.push(null);

arrayInfos(a1);
arrayInfos(a2);

forLoops(a1);
forLoops(a2);

br();
line("-- push", undefined);

a1.push(undefined);
a2.push(undefined);

arrayInfos(a1);
arrayInfos(a2);

forLoops(a1);
forLoops(a2);

br();
line("-- set a[6] to", null);

a1[6] = null;
a2[6] = null;

arrayInfos(a1);
arrayInfos(a2);

forLoops(a1);
forLoops(a2);

br();
line("-- set a[6] to", undefined);

a1[6] = undefined;
a2[6] = undefined;

arrayInfos(a1);
arrayInfos(a2);

forLoops(a1);
forLoops(a2);

console.log("There is a difference between setting to undefined and never set the variable");

/*var a = [];
var b = {};

console.log(a.length, b.length);

for(var i=0; i<a.length; ++i) console.log(a[i]);
for(var i=0; i<b.length; ++i) console.log(b[i]);

console.log(2>undefined, 0<undefined,...