【JavaScript入門】絶対値を取得するMathクラスのabs関数の使い方

こんにちは!エンジニアの中沢です。

JavaScriptには絶対値を取得するための「abs関数」があります。

絶対値を使えば二つの値がどれだけ離れているかの確認ができるので上手く活用してください。

この記事では、

・絶対値とは
・Mathクラスのabs関数で絶対値を取得する方法

という基本的な内容から、

・絶対値の注意点
・絶対値を取得する関数を自作する方法

などの応用的な使い方に関しても解説していきます。

今回はこれらの方法を覚えるために、abs関数のさまざまな使い方をわかりやすく解説します!

絶対値とは

絶対値とは値が「0」からどれだ離れているかを表す距離のことです。

絶対値は、マイナスの値からマイナスを取ってプラスの値にすることで取得できます。

数学では絶対値は 「|a|」 のように記述します。

JavaScriptで絶対値を取得するには、abs関数を使います。

絶対値は変数の値をプラスの値で欲しいときや、二つの値の差をプラスの値で取得したいときなどに使われます。

Mathクラスのabs関数で絶対値を取得する方法

ここでは、Mathクラスのabs関数で絶対値を取得する方法を解説します。

abs関数は、引数に絶対値を取得したい数値を指定します。

次のプログラムで確認してみましょう。

console.log(Math.abs(123));
console.log(Math.abs(-123));

実行結果:

123
123

このようにして、絶対値を取得することができました。

絶対値の注意点

絶対値を取得するabs関数に文字列を指定すると「NaN」を返します。

また、「true」や「false」を指定すると「1」、「0」を返すので注意が必要です。

次のプログラムで確認してみましょう。

console.log(Math.abs('Samurai'));
console.log(Math.abs(true));
console.log(Math.abs(false));

実行結果:

NaN
1
0

数値以外を指定するとバグの原因になるので注意してください。

絶対値を取得する関数を自作する方法

ここでは、絶対値を取得する関数を自作する方法を解説します。

絶対値を取得する関数を自作するには、三項演算子を使います。

この自作した関数では、文字列を渡しても「NaN」を返さずにそのままの文字列を返します。

次のプログラムで確認してみましょう。

function absSample(val) {
    return val < 0 ? -val : val;
};

console.log(absSample(123));
console.log(absSample(-123));
console.log(absSample('Samurai'));
console.log(absSample(true));
console.log(absSample(false));

実行結果:

123
123
Samurai
true
false

このようにして、絶対値を取得する関数を自作することができました。

三項演算子の詳しい使い方はこちらの記事で解説しているので、ぜひ確認してください。

【JavaScript入門】条件(三項)演算子の使い方と活用例まとめ!
更新日 : 2019年1月24日

まとめ

いかがでしたか?

今回はabs関数で絶対値を取得する方法を解説しました。

abs関数は文字列を引数に指定すると「NaN」を返すので、注意してくださいね。

もし、絶対値を取得する方法を忘れてしまったらこの記事を確認してください!

LINEで送る
Pocket

SEからWebエンジニアへ転職した理由

侍エンジニア塾卒業生の小池さんは、以前は社内SEとして約5年ほど勤務していました。しかし業務内容は社内のヘルプデスク対応など、プログラムを書く仕事は全くなかったそうです。

SEながらプログラムを書けない現状に「将来仕事がなくなるんじゃないか」と不安を感じ、プログラミング学習を決意。

弊社スクールで学習し、無事ベンチャー企業のプログラマーとして転職に成功しました。そんな小池さんの学習法や転職体験談を伺いましたので、是非ご覧ください。

「プログラミングができないSEは仕事がなくなる」不安を感じたSEが未経験から転職成功するまで
更新日 : 2019年10月7日

書いた人

中沢 丈

中沢 丈

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説