もっとシンプルに書きたい!JavaScriptで知っていると便利なショートハンド11選
CSSでは、ほかのいくつかのCSSプロパティをまとめて1つのプロパティで指定することが可能な「ショートハンド」と呼ばれる短縮プロパティが存在します。
これを使うことで、Webページの製作者は記述する時間を短縮したり、CSSを読みやすくしたり、コード量を削減したりすることができます。
例えば、背景に関するショートハンドである「background」プロパティは、「background-color」や「background-position」、「background-repeat」などの関連したプロパティを同時に指定することができます。
同様に、フォント関連には「font」、各辺のマージンを一括で指定するために「margin」というように、他にもさまざまなショートハンドプロパティが存在します。
それでは、CSSとともにフロントエンドエンジニアには必須のJavaScriptでは、もっと短く書くことができないのでしょうか。
今回は、もっとシンプルに書くことができる、JavaScriptで知ってると便利なショートハンド11選をご紹介します。
特に、JavaScriptを学びたての方にとっては、様々な発見があるはずです。
JavaScriptで知ってると便利なショートハンド
画像引用元:stock.io
1. 配列をまとめる
ロングハンド
let a = new Array();
a[0] = “ferret 1号”;
a[1] = “ferret 2号”;
a[2] = “ferret 3号”;
ショートハンド
let a = [“ferret 1号”, “ferret 2号”, “ferret 3号”];
これは最もポピュラーな配列をまとめるプロパティです。
配列を1つずつ指定することも可能ですが、まとめて配列の中身まで指定してやれば、4行文使ったコードを1行にすっきりまとめることができます。
2. 値の有効無効チェック
ロングハンド
if (variableFerret !== null || variableFerret !== undefined || variableFerret !== '') {
let variableOctopus = variableFerret;
}
ショートハンド
let variableOctopus = variableFerret || '';
フォームの値を送信するときに、空欄や無効な値であるかどうかを調べるための処理を実装するときがあります。
しかし、何度もチェックをする場合には、1行でチェックできたほうがいいですよね。
上記のショートハンドは、「短絡評価」と呼ばれることもあります。
実際、Chromeデベロッパーツールを使って処理の過程を見てみると、nullであっても、undefinedであっても、「let variableOctopus = variableFerret || ‘’;」という処理をしていることが分かります。
3. If true … else 文
ロングハンド
let senior;
if (ferretAge > 10) {
senior = true;
}
else {
senior = false;
}
ショートハンド
let senior = ferretAge > 10 ? true : false;
If文のショートハンドも有名なのでご存知の方も多いでしょう。
こうした記法で使われる「?」や「:」は三項演算子と呼ばれることがあります。
4. for文
ロングハンド
for (let i = 0; i < ferret.length; i++) {
ferretNum++;
}
ショートハンド
for (let index in ferret) {
ferretNum++;
}
for文での繰り返し処理では、上記のような書き方もできます。
画像引用元:stock.io
5. 算術演算子
ロングハンド
ferretNum = ferretNum + 1;
ferretAge = ferretAge - 1;
ferretBros = ferretBros * 10;
ショートハンド
ferretNum++;
ferretAge—;
ferretBros*=10;
足し算や引き算、掛け算も、同じ値を参照する場合には非常にコンパクトにまとめることができます。
これはJavaScriptに限らず、JavaやPHP、C++など、さまざまな言語で使うことができるプログラミング言語全般のショートハンドです。
6. 文字列から数値へ・数値から文字列へ
ロングハンド
var ferretSays = “12345”;
parseInt (ferretSays);
var ferretAge = 11;
ferretAge.toString();
ショートハンド
var ferretSays = “12345”;
+ferretSays;
var ferretAge = 11;
“ ”+ferretAge;
文字列から数値へ切り替えるには、通常parseInt関数を使いますが、変数の前に「+」をつけるだけで数値に切り替わります(数字の文字列であることが条件です)。
また、同様に数値から文字列への切り替えはtoStringを使いますが、半角の空白を前につければ文字列への切り替えが行われます。
7. 文字の抜き出し
ロングハンド
“ferret”.charAt(0);
ショートハンド
“ferret” [0];
文字列のn番目の文字を抜き出すときにはcharAt(n)関数を使いますが、上記のようにブラケットを使うことでも文字の抜き出しを行うことが可能です。
8. 関数の呼び出し
ロングハンド
function ferretX() {console.log('x')};
function ferretY() {console.log('y')};
let a = 3;
if (a == 3) {
ferretX();
} else {
ferretY();
}
ショートハンド
function ferretX() {console.log('x')};
function ferretY() {console.log('y')};
let a = 3;
(a==3 ? ferretX:ferretY)();
先ほどif文で見た三項演算子を関数に応用した例です。
このように、単純に真偽チェックを行う場合には、関数名を指定するやり方もあります。
画像引用元:stock.io
9. ゼロの省略
ロングハンド
for (let i = 0; i < 10000; i++) {
ferretSays += “どうしたの?”;
}
ショートハンド
for (let i = 0; i < 1e5; i++) {
ferretSays += “どうしたの?”;
}
上記のコードのわずかな違いを見つけられるでしょうか。
「10000」の部分が「1e5」になっていますが、これはゼロを書かずに10の累乗を表現する方法です。
例えば「1e8」は、1のあとに8つの0が続くので、1億(=100,000,000)と同じ意味になります。
ちなみに、「1e0」は1、「1e1」で10と定義されます。
10. 値の存在確認
ロングハンド
if (ferret === true){
ferretSays = “hogehoge”;
}
ショートハンド
if (ferret){
ferretSays = “hogehoge”;
}
ifを使って値の存在確認を行うときには、すべての演算子を取り除いて変数だけを括弧の中に入れれば大丈夫です。
同じく、ferretがtrueではない場合には、「!」を変数の前に付けます。
ロングハンド
if (ferret != true){
ferretSays = “foobar”;
}
ショートハンド
if (!ferret){
ferretSays = “foobar”;
}
11. 小数点以下の切り捨て
ロングハンド
if (Math.floor(3.7) === 3){
return ferret;
}
ショートハンド
if (~~3.7 === 3){
return ferret;
}
小数点以下の切り捨てには、通常Math.floor()関数を使います。
しかし、ビット否定演算子「~」を2つ重ねて使うことで、同様に小数点以下の切り捨て処理を行います。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- フォント
- フォントとは、同一の特徴を持った文字の形状を一揃いでデザインしたものです。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- フォーム
- フォームとは、もともと「形」「書式」「伝票」などの意味を持つ英単語です。インターネットの分野では、パソコンの操作画面におけるユーザーからの入力を受け付ける部分を指します。企業のホームページでは、入力フォームが設置されていることが多いようです。
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
おすすめ記事
おすすめエントリー
同じカテゴリから記事を探す
カテゴリから記事をさがす
●Webマーケティング手法
- SEO(検索エンジン最適化)
- Web広告・広告効果測定
- SNSマーケティング
- 動画マーケティング
- メールマーケティング
- コンテンツマーケティング
- BtoBマーケティング
- リサーチ・市場調査
- 広報・PR
- アフィリエイト広告・ASP
●ステップ
●ツール・素材
- CMS・サイト制作
- フォーム作成
- LP制作・LPO
- ABテスト・EFO・CRO
- Web接客・チャットボット
- 動画・映像制作
- アクセス解析
- マーケティングオートメーション(MA)
- メールマーケティング
- データ分析・BI
- CRM(顧客管理)
- SFA(商談管理)
- Web会議
- 営業支援
- EC・通販・ネットショップ
- 口コミ分析・ソーシャルリスニング
- フォント
- 素材サイト
●目的・施策
- Google広告
- Facebook広告
- Twitter広告
- Instagram広告
- LINE運用
- LINE広告
- YouTube運用
- YouTube広告
- TikTok広告
- テレビCM
- サイト制作・サイトリニューアル
- LP制作・LPO
- UI
- UX
- オウンドメディア運営
- 記事制作・ライティング
- コピーライティング
- ホワイトペーパー制作
- デザイン
- セミナー・展示会
- 動画・映像制作
- データ分析・BI
- EC・通販・ネットショップ
- 口コミ分析・ソーシャルリスニング