JavaScript用Math.sqrt()求平方根

JavaScript用Math.sqrt()求平方根

1. 基本概念

Math.sqrt()方法的名字sqrt是"square root"的縮寫,它代表的正是平方根。因此,Math.sqrt()方法的作用就是用來求一個數的平方根。它的語法結構如下所示:

<code>Math.

sqrt

(x);/<code>

參數x應該是一個數字,即它的類型應該是Number。如果x不是Number類型的,那麼它會先被強制類型轉換為Number類型。在數學上要計算一個數的平方根,那麼這個數就不能為負數。Math.sqrt()同樣要求它的參數不能為負數,但有一個例外,那就是-0;在JavaScript中,-0的平方根就是-0本身。

Math.sqrt()方法的返回值由下面的規則決定,規則中x的值指的是x被轉換為Number類型後的值,如果它原本不是Number類型的話。

1. 如果x是NaN,那麼結果也是NaN;

2. 如果x是+0,那麼結果也是+0;

3. 如果x是-0,那麼結果也是-0;

4. 如果x是正無窮(Infinity),那麼結果也是正無窮(Infinity);

5. 如果x小於0(包括負無窮,-Infinity),那麼結果就是NaN;

6. x為其它大於0的數字,結果為x的平方根。

2. 示例

2.1 參數為正數

我們先來看看用正數調用Math.sqrt()的結果,這也正是我們最常使用Math.sqrt()方法的情況,以下代碼的執行結果如圖1所示。

<code>

<

script

>

var

value1 =

Math

.sqrt(

25

);

console

.log(

"Math.sqrt(25) = "

+ value1);

var

value2 =

Math

.sqrt(

3

);

console

.log(

"Math.sqrt(3) = "

+ value2);

var

value3 =

Math

.sqrt(

4

);

console

.log(

"Math.sqrt(4) = "

+ value3);

script

>

/<code>
JavaScript用Math.sqrt()求平方根

圖1 參數為正數的情況

2.2 參數為特殊值和負數

我們再來看看參數為特殊值和負數的場景,以下代碼的執行結果如圖2所示。注意在該示例中,我們用單獨的一條打印語句來打印-0的平方根。這是因為如果用同一條打印語句來同時打印提示字符串和結果值,那麼-0在轉換成字符串後就變成0了,打印出的結果會錯誤地顯示-0的平方根為0。

<code>

<

script

>

var

value1 =

Math

.sqrt(

NaN

);

console

.log(

"Math.sqrt(NaN) = "

+ value1);

var

value2 =

Math

.sqrt(+

0

);

console

.log(

"Math.sqrt(+0) = "

+ value2);

var

value3 =

Math

.sqrt(

-0

);

console

.log(

"Math.sqrt(-0)的結果在下面一行單獨打印:"

);

console

.log(value3);

var

value4 =

Math

.sqrt(

Infinity

);

console

.log(

"Math.sqrt(Infinity) = "

+ value4);

var

value5 =

Math

.sqrt(-

Infinity

);

console

.log(

"Math.sqrt(-Infinity) = "

+ value5);

var

value6 =

Math

.sqrt(

-9

);

console

.log(

"Math.sqrt(-9) = "

+ value6);

script

>

/<code>
JavaScript用Math.sqrt()求平方根

圖2 參數為特殊值和負數的情況

2.3 參數不是數字

最後,我們再來看看參數不是Number類型的情形,此時參數會先被轉換為Number類型。

<code>

<

script

>

var

value1 =

Math

.sqrt(

"16"

);

console

.log(

'Math.sqrt("16") = '

+ value1);

var

value2 =

Math

.sqrt(

null

);

console

.log(

"Math.sqrt(null) = "

+ value2);

var

value3 =

Math

.sqrt(

true

);

console

.log(

"Math.sqrt(true) = "

+ value3);

var

value4 =

Math

.sqrt(

window

);

console

.log(

"Math.sqrt(window) = "

+ value4);

script

>

/<code>
JavaScript用Math.sqrt()求平方根

圖3 參數需要類型轉換的情況

(完)


分享到:


相關文章: