HTMLTableElement.createCaption()
  The HTMLTableElement.createCaption() method returns the
  <caption> element associated with a given <table>.
  If no <caption> element exists on the table, this method creates
  it, and then returns it.
    Note: If no caption exists, createCaption() inserts a
    new caption directly into the table. The caption does not need to be added
    separately as would be the case if Document.createElement() had
    been used to create the new <caption> element.
  
Syntax
HTMLTableElement = table.createCaption();
Return value
Example
This example uses JavaScript to add a caption to a table that initially lacks one.
HTML
<table>
  <tr><td>Cell 1.1</td><td>Cell 1.2</td><td>Cell 1.3</td></tr>
  <tr><td>Cell 2.1</td><td>Cell 2.2</td><td>Cell 2.3</td></tr>
</table>
JavaScript
let table = document.querySelector('table');
let caption = table.createCaption();
caption.textContent = 'This caption was created by JavaScript!';
Result
Specifications
| Specification | 
|---|
| HTML Standard # dom-table-createcaption-dev | 
Browser compatibility
BCD tables only load in the browser