sqrt(-1) 坏了。发生了什么?

sqrt(-1) is broken. What happened?

我试图让 i 成为 -1 (sqrt(-1)) 的平方根。这是一个定义的值:

i = sqrt(-1)
var i = sqrt(-1);
fill(0, 0, 0);
text(i, 25, 25);

它给我一个错误。发生什么事了?

sqrt() 是一个已经定义了行为的函数。来自 MDN:

The square root of the given number. If the number is negative, NaN is returned.

NaN 本身不是错误。该值表示 "not a number" - 您可以找到更多信息 here.

您对函数和值的思考方向似乎与我不同。查看这一行:

var i = sqrt(-1);

这一行并不是在说 "define the square root of -1 to be equal to i"。它是说:创建一个名为 i 的变量,并将其值设置为等于通过调用 sqrt(-1).

返回的值

所以代码调用了sqrt(-1),其中returnsNaN,所以i的值为NaN。然后,当您尝试使用该值时,您会看到 NaN.