The Geolocation API does what you might expect: retrieve information about the client's whereabouts, represented in latitude and longitude. However, it is up to the user to agree to give away their location.
This API is defined in the W3C Geolocation API Specification. Features for obtaining civic addresses and to enable geofencing / triggering of events have been explored, but are not widely implemented.
To check if the browser supports the Geolocation API:
if(navigator.geolocation){
// Horray! Support!
} else {
// No support...
}