var isn't a data type - it's just a way of telling the compiler to infer the type itself. If doesn't make any difference at execution time. The compiled code will be exactly the same.
var was primarily introduced as part of anonymous types where you can't explicitly declare a variable of the appropriate type, as it has no name. This feature in turn is primarily used in LINQ, where you often have ad-hoc projections.
There are other benefits of var however in terms of reducing duplication - for example, if you're already specifying the type exactly in the assignment expression, there's little point in having it on the left-hand side:
// Simple
var namesMap = new Dictionary<string, Person>();
// Duplication and more to read
Dictionary<string, Person> namesMap = new Dictionary<string, Person>();