Client scripts are not the only example of client-side scripting, but they're probably the most ubiquitous (hence the name). A client script is a snippet of JavaScript that's sent from the server to the user's browser, to be executed client-side.
Keep in mind that any time a UI policy can effectively reproduce the desired functionality that you might otherwise use a client script for, it is best to use the UI policy. However, more advanced functionality often requires the use of more advanced conditions or functionality. That is where client scripts come in!
As a general rule, a well-written client script will return control of the browser to the user very quickly, and perform any server lookups asynchronously. This includes looking up properties from the server, performing GlideRecord queries, and handling time-zones.