how does javascript work