In order to learn better, let's try another example:
map.getView().getZoom() and map.getView().getCenter().zoomToExtentControl:var zoomToExtentControl = new ol.control.ZoomToExtent({
extent: [-11243808.051695308, 4406397.202710291, -4561377.290892059, 6852382.107835932]
});map instantiation:addControl(zoomToExtentControl);
var controls = map.getControls();
var attributionControl;
controls.forEach(function (el){
if (el instanceof ol.control.Attribution) {
attributionControl = el;
}
})ol.control.Attribution control using the reference you retrieve and supposing map reference the ol.Map instance.map.removeControl(attributionControl);

Here, we've just seen an example to learn how to manage the ol.control.ZoomToExtent control. The most interesting part is related to the code that enables you to find your control reference without having an object control reference. For this, we use the instanceof JavaScript function.
Now, we also know how to list controls for a map using the map.getControls() function, and also loop through it using the forEach method from ol.Collection.
Finally, we discovered how to remove a control when for any reason, we needed to delete it afterward with the map.removeControl() function. You also have to understand that for learning purposes we don't check everything. For example, imagine there were more than one ol.control.Attribution control. A good exercise can be to change code to manage this case.
These properties set the options for the ol.control.ZoomToExtent control.
Now, we got an overview of controls, let's see how to make our own ones, for specific purposes.