一、JavaScript 取絕對值函數
function absoluteValue(num) { return Math.abs(num); } console.log(absoluteValue(-5)); // 5
JavaScript 提供了一個內置的取絕對值方法 Math.abs(),該方法接收一個數字參數,返回這個數字的絕對值。該方法可以應用於任何數字類型,包括負數、浮點數和數字字符串。
在以上代碼中,定義了一個名為 absoluteValue 的函數,該函數接收一個參數,傳遞給 Math.abs() 方法,最後返回絕對值。
二、JavaScript 數字取絕對值
let negativeNum = -5; let positiveNum = 5; console.log(Math.abs(negativeNum)); // 5 console.log(Math.abs(positiveNum)); // 5
對數字取絕對值是一個非常常見的需求,我們可以直接使用數字類型和 Math.abs() 方法來做到這一點。無論數字是正數還是負數,都可以傳遞給 Math.abs() 方法,方法會返回其絕對值。
三、JavaScript 取絕對值方法
let str = '-5'; let num = -5.5; let arr = [-5, 6, -3]; console.log(Math.abs(str)); // 5 console.log(Math.abs(num)); // 5.5 console.log(arr.map(Math.abs)); // [5, 6, 3]
在 JavaScript 中,對於非數字類型的參數,可以使用 Number() 函數將它們轉換為數字進行絕對值計算。另外,將 Math.abs() 方法應用於數組時,可以使用 map() 函數,對數組中的每個值都應用 Math.abs()。
四、JavaScript 絕對值怎麼取
let a = -1; let b = 0; let c = 1; let d = -Infinity; let e = '1234'; console.log(Math.abs(a)); // 1 console.log(Math.abs(b)); // 0 console.log(Math.abs(c)); // 1 console.log(Math.abs(d)); // Infinity console.log(Math.abs(e)); // 1234
取絕對值的很多用例中都會涉及到不同類型的值,如上代碼所示。對於負數,取其絕對值應該是常識了;對於 0,其絕對值還是 0;對於正數,其絕對值就是其本身;對於 +∞ 和 -∞,其絕對值仍然是 +∞ 和 -∞;對於數字字符串,其會被轉換為數字並取絕對值。
五、JavaScript 取絕對值的方法
在 JavaScript 中,除了使用 Math.abs() 方法外,還有其他方法用於取絕對值。下面列舉了一些常見的方法:
1. 使用條件運算符 ?:,比較數字和 0 的大小,如果小於 0,則返回相反數;如果大於等於 0,則返回本身。
function abs(num) { return num < 0 ? -num : num; } console.log(abs(-5)); // 5
2. 使用位運算符 >> 0,將數字的小數部分削去,轉換為整數。
function abs(num) { return (num ^ num >> 31) - (num >> 31); } console.log(abs(-5)); // 5
3. 使用指數運算符 **,對數字的平方進行開方運算。
function abs(num) { return (num ** 2) ** 0.5; } console.log(abs(-5)); // 5
4. 使用 parseInt() 函數,將數字字符串轉換為數字類型,並取絕對值。
function abs(str) { return Math.abs(parseInt(str)); } console.log(abs('-5')); // 5
5. 使用 ES6 新增的指數運算符 ** 和三元運算符 ?: 的組合,將數字平方並開方,再判斷是否為負數,如果是,則返回相反數。
function abs(num) { return num ** 2 ** .5 * (num < 0 ? -1 : 1); } console.log(abs(-5)); // 5
JavaScript 中取絕對值是一個非常基礎、實用的操作,還有很多其他的實現方法。對於需要頻繁使用的開發者,不妨掌握多種實現方式,以適應不同的場景。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/193495.html