#3 JavaScriptで学ぶ演算子の基本
JavaScriptの演算子は、基本的な計算だけでなく、比較のしかたに独特の注意点があります。この記事では、JavaScriptの基本的な演算子と、初心者がつまずきやすいポイントを解説します。
算術演算子
数値の計算に使う演算子には、次のようなものがあります。
+足し算(文字列の連結にも使われる)-引き算*掛け算/割り算%割り算の余り
+は数値の足し算だけでなく、文字列同士をつなげる場合にも使われます。数値と文字列を+でつなぐと、自動的に文字列として結合される点には注意が必要です。
console.log(1 + "2"); // "12"(文字列になる)
console.log(1 + 2); // 3(数値のまま)
比較演算子:==と===の違い
JavaScriptには、2種類の「等しいかどうか」を調べる演算子があります。
==値だけを比べる(型が違っても変換して比較する)===値と型の両方を比べる
例えば、数値の0と文字列の"0"を==で比べると「等しい」と判定されますが、===では「異なる」と判定されます。この違いを知らずに使うと意図しないバグの原因になるため、基本的には===を使うことが強く推奨されています。
論理演算子
複数の条件を組み合わせるための演算子です。
&&かつ||または!否定
null合体演算子??とオプショナルチェーン?.
比較的新しいJavaScriptには、null安全に関わる演算子も追加されています。
const name = nickname ?? "名無しさん";
const length = user?.profile?.name?.length;
??はnullまたはundefinedのときだけ既定値を使い、?.は途中の値がnull・undefinedならエラーにせずundefinedを返します。
JavaScriptならではの注意点
先ほど触れた==は、比較の際に型を自動的に変換してから比べるため、直感に反する結果になることがあります。「なぜかif文の判定が思った通りにならない」と感じたら、まず==を===に変えてみると、原因が見つかることが多いです。
複合代入演算子
「変数に加算してから代入し直す」処理をまとめて書ける複合代入演算子も使えます。
let count = 0;
count += 1; // count = count + 1 と同じ
まとめ
JavaScriptの演算子で最も注意すべきなのは、==と===の違いです。??・?.によるnull安全な書き方も活用しつつ、迷ったときは常に===を使う、というルールを徹底するだけで、多くのバグを未然に防げます。
本ページはプロモーションを含みます。
参考書籍(PR)
JavaScriptをもっと学びたい方には「改訂新版JavaScript本格入門」がおすすめです。
PR
コードを書かずに自動化したい方へ
「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿