eloquentjavascript chapter 04