According to some Calculus textbooks, 0^0 is an ``indeterminate form''. When evaluating a limit of the form 0^0, then you need to know that limits of that form are called ``indeterminate forms'', and that you need to use a special technique such as L'Hopital's rule to evaluate them. Otherwise, 0^0 = 1 seems to be the most useful choice for 0^0. This convention allows us to extend definitions in different areas of mathematics that otherwise would require treating 0 as a special case. Notice that 0^0 is a discontinuity of the function x^y. More importantly, keep in mind that the value of a function and its limit need not be the same thing.
This means that depending on the context where 0^0 occurs, you might wish to substitute it with 1, indeterminate or undefined/nonexistent.
Some people feel that giving a value to a function with an essential discontinuity at a point, such as x^y at (0,0), is an inelegant patch and should not be done. Others point out correctly that in mathematics, usefulness and consistency are very important, and that under these parameters 0^0 = 1 is the natural choice.
The following is a list of reasons why 0^0 should be 1.
Rotando & Korn show that if f and g are real functions that vanish at the origin and are analytic at 0 (infinitely differentiable is not sufficient), then f(x)^(g(x)) approaches 1 as x approaches 0 from the right.
From Concrete Mathematics p.162 (R. Graham, D. Knuth, O. Patashnik):
Some textbooks leave the quantity 0^0 undefined, because the functions x^0 and 0^x have different limiting values when x decreases to 0. But this is a mistake. We must define x^0 = 1 for all x, if the binomial theorem is to be valid when x=0, y=0, and/or x=-y. The theorem is too important to be arbitrarily restricted! By contrast, the function 0^x is quite unimportant.Published by Addison-Wesley, 2nd printing Dec, 1988.
As a rule of thumb, one can say that 0^0 = 1, but 0.0^(0.0) is undefined, meaning that when approaching from a different direction there is no clearly predetermined value to assign to 0.0^(0.0); but Kahan has argued that 0.0^(0.0) should be 1, because if f(x), g(x) -> 0 as x approaches some limit, and f(x) and g(x) are analytic functions, then f(x)^g(x) -> 1.
The discussion on 0^0 is very old, Euler argues for 0^0 = 1 since a^0 = 1 for a != 0. The controversy raged throughout the nineteenth century, but was mainly conducted in the pages of the lesser journals: Grunert's Archiv and Schlomilch's Zeitshrift. Consensus has recently been built around setting the value of 0^0 = 1.
On a discussion of the use of the function 0^(0^x) by an Italian mathematician named Guglielmo Libri.
[T]he paper  did produce several ripples in mathematical waters when it originally appeared, because it stirred up a controversy about whether 0^0 is defined. Most mathematicians agreed that 0^0 = 1, but Cauchy [5, page 70] had listed 0^0 together with other expressions like 0/0 and oo - oo in a table of undefined forms. Libri's justification for the equation 0^0 = 1 was far from convincing, and a commentator who signed his name simply ``S'' rose to the attack . August Möbius  defended Libri, by presenting his former professor's reason for believing that 0^0 = 1 (basically a proof that lim_(x -> 0+) x^x = 1). Möbius also went further and presented a supposed proof that lim_(x -> 0+) f(x)^(g(x)) whenever lim_(x -> 0+) f(x) = lim_(x -> 0+) g(x) = 0. Of course ``S'' then asked  whether Möbius knew about functions such as f(x) = e^(-1/x) and g(x) = x. (And paper  was quietly omitted from the historical record when the collected words of Möbius were ultimately published.) The debate stopped there, apparently with the conclusion that 0^0 should be undefined.
But no, no, ten thousand times no! Anybody who wants the binomial theorem (x + y)^n = sum_(k = 0)^n (nk) x^k y^(n - k) to hold for at least one nonnegative integer n must believe that 0^0 = 1, for we can plug in x = 0 and y = 1 to get 1 on the left and 0^0 on the right.
The number of mappings from the empty set to the empty set is 0^0. It has to be 1.
On the other hand, Cauchy had good reason to consider 0^0 as an undefined limiting form, in the sense that the limiting value of f(x)^(g(x)) is not known a priori when f(x) and g(x) approach 0 independently. In this much stronger sense, the value of 0^0 is less defined than, say, the value of 0+0. Both Cauchy and Libri were right, but Libri and his defenders did not understand why truth was on their side.
 Anonymous and S... Bemerkungen zu den Aufsatze überschrieben, `Beweis der Gleichung 0^0 = 1, nach J. F. Pfaff', im zweiten Hefte dieses Bandes, S. 134, Journal für die reine und angewandte Mathematik, 12 (1834), 292-294.
 Ouvres Complètes. Augustin-Louis Cauchy. Cours d'Analyse de l'Ecole Royale Polytechnique (1821). Series 2, volume 3.
 Guillaume Libri. Mémoire sur les fonctions discontinues, Journal für die reine und angewandte Mathematik, 10 (1833), 303-316.
 A. F. Möbius. Beweis der Gleichung 0^0 = 1, nach J. F. Pfaff. Journal für die reine und angewandte Mathematik,
12 (1834), 134-136.
 S... Sur la valeur de 0^0. Journal für die reine und angewandte Mathematik 11, (1834), 272-273.
Knuth. Two notes on notation. (AMM 99 no. 5 (May 1992), 403-422).
H. E. Vaughan. The expression '0^0'. Mathematics Teacher 63 (1970), pp.111-112.
Louis M. Rotando and Henry Korn. The Indeterminate Form 0^0. Mathematics Magazine, Vol. 50, No. 1 (January 1977), pp. 41-42.
L. J. Paige,. A note on indeterminate forms. American Mathematical Monthly, 61 (1954), 189-190; reprinted in the Mathematical Association of America's 1969 volume, Selected Papers on Calculus, pp. 210-211.
Baxley & Hayashi. A note on indeterminate forms. American Mathematical Monthly, 85 (1978), pp. 484-486.