Introduction
We use type checking to find out what kind of thing (object) we have. This helps us decide what we can do with it.
When you want to do something only if a value is a number.
When you need to check if an object belongs to a certain group or family of types.
When you want to avoid errors by making sure an object supports certain actions.
When you want to handle different types of objects in different ways.
When debugging to understand what type of data you are working with.