Onreadystatechange vs onload

Javascript: When reading/fetching data, is there an option that is use more between onreadystatechange and onload?

const xhr = new XMLHttpRequest();
xhr.responseType = 'json';
xhr.onreadystatechange = () => {
    if(xhr.readyState === XMLHttpRequest.DONE){
        console.log(xhr.response);
        return xhr.response;
    }
};

or

xhr.onload = function() {
if(this.status == 200){
  console.log(this.responseText);
}
}
  1. Which is used more and why?
  2. Which is newer?
  3. If doing a interview question related to fetching, which would be more professional/impressive?