I would like to know why some languages like R has both NA and NaN. What are the differences or are they equally the same? Is it really needed to have NA?

Understanding the Context

Main question: What is a NaN value or NaN exactly (in the words of a non-math professor)? Furthermore i have a few questions about the whole circumstance, which giving me complaints in understanding what a NaN should be, which are not necessary to answer my main question but desired: What are operations which causing a NaN value as result?