javascript understanding the weird parts free