There is no method called delay in javascript, you need to use setTimeout as you shown above.
$(document).ready(function () {
setTimeout(function () {
$('.hidden').slideDown("slow");
}, 4000);
});
There is a .delay() method provided by jQuery, it is for delays items added in the queue
$('.hidden').delay(4000).slideDown("slow");
Demo: Fiddle
still if you don't want to use setTimeout
then create an alias for it like (Just for fun)
var delay = setTimeout;
delay(function () {
$('.hidden').slideDown("slow");
}, 4000);