hasOwnProperty syntax

In Solution 1, what is the purpose/meaning of the exclamation point before [object][id] in line 4 of the new code? See line that I refer to below:
} else if (prop === “tracks” && !object[id].hasOwnProperty(“tracks”)) {

// Setup
var collection = {
2548: {
albumTitle: ‘Slippery When Wet’,
artist: ‘Bon Jovi’,
tracks: [‘Let It Rock’, ‘You Give Love a Bad Name’]
2468: {
albumTitle: ‘1999’,
artist: ‘Prince’,
tracks: [‘1999’, ‘Little Red Corvette’]
1245: {
artist: ‘Robert Palmer’,
5439: {
albumTitle: ‘ABBA Gold’

// Only change code below this line
function updateRecords(object, id, prop, value) {
return object;

updateRecords(collection, 5439, ‘artist’, ‘ABBA’);

**Your browser information:**

User Agent is: <code>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36</code>.

**Challenge:** Record Collection

**Link to the challenge:**

That the “not” operator. It converts a falsy value to true and a truth value to false. So !true === false and vice versa. Sometime you’ll see the do it twice as a sneaky way to turn anything into its corresponding boolean value.

Take a look here.