JavaScript用Math.sqrt求平方根(JavaScript用Math.sqrt求平方根)
2023-08-11 05:18:57 1
1. 基本概念
Math.sqrt方法的名字sqrt是"square root"的縮寫,它代表的正是平方根。因此,Math.sqrt方法的作用就是用來求一個數的平方根。它的語法結構如下所示:
Math.sqrt(x);
參數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所示。
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);
圖1 參數為正數的情況
2.2 參數為特殊值和負數
我們再來看看參數為特殊值和負數的場景,以下代碼的執行結果如圖2所示。注意在該示例中,我們用單獨的一條列印語句來列印-0的平方根。這是因為如果用同一條列印語句來同時列印提示字符串和結果值,那麼-0在轉換成字符串後就變成0了,列印出的結果會錯誤地顯示-0的平方根為0。
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);
圖2 參數為特殊值和負數的情況
2.3 參數不是數字
最後,我們再來看看參數不是Number類型的情形,此時參數會先被轉換為Number類型。
/* 字符串"16"轉換成數字為16 */ var value1 = Math.sqrt("16"); console.log('Math.sqrt("16") = ' value1); /* null轉化成數字為0( 0) */ var value2 = Math.sqrt(null); console.log("Math.sqrt(null) = " value2); /* 布爾值true轉換成數字為1 */ var value3 = Math.sqrt(true); console.log("Math.sqrt(true) = " value3); /* window對象轉換成數字為NaN */ var value4 = Math.sqrt(window); console.log("Math.sqrt(window) = " value4);
圖3 參數需要類型轉換的情況
(完)
,