This answer is from 10 years in the future.
There are a number of approaches to timing web page processes including:
- Date-related methods:
and:
- console.time-related methods:- 
- console.time('myTimer');
- console.timeLog('myTimer');
- console.timeEnd('myTimer');
 
but, since late 2015, the ideal way to time web page processes using high-resolution timestamps has been:
- window.performance.now();
Using Performance:
The Performance interface, accessed via window.performance has numerous methods, including:
- timeOrigin
- mark
- measure
- getEntries
- toJSON
and more.
But in order to time a script, all you need is window.performance.now():
let scriptStart = window.performance.now();
let scriptEnd = window.performance.now();
let scriptDuration = (scriptEnd - scriptStart);
Working Example:
let paragraph = document.querySelector('p');
let button = document.querySelector('button');
const runTimedScript = () => {
  let scriptStart = window.performance.now();
  for (let i = 0; i < 10000; i++) {
    paragraph.textContent = 'Loop iteration ' + (i + 1);
  }
  let scriptEnd = window.performance.now();
  let scriptDuration = (scriptEnd - scriptStart);
  
  button.textContent = 'Re-run Script';
  console.log('The script ran in ' + scriptDuration + ' milliseconds');
}
  
button.addEventListener('click', runTimedScript, false);
button {
  cursor: pointer;
}
<p></p>
<button type="button">Run Script</button>
<p>To see how long the script takes to run,<br />
click the button above repeatedly.</p>
 
 
Further Reading:
To find out more about the Performance Interface, see: