Eso ocurre por que en el momento en que es invocada está indefinida. Fijate que es invocada con el evento load y en ese momento está indefinido su valor. Si añades otra función, verás que estás logrando lo que buscas
Cita: arrayEstudiante=JSON.stringify(estudiante);
//document.write(objEstudiante);
otrafuncion();
}
function otrafuncion() {
document.write(arrayEstudiante);
}