目次
1. 変数の割り当て
2. デフォルト値の割り当て
3. オブジェクト属性
4. アロー関数
5 暗黙的な戻り値
6. デフォルトのパラメータ値
7. テンプレート文字列
8. 代入の構造化
9 展開演算子は ES6 にあります。スプレッド演算子を使用すると、JavaScript コードをより効率的で興味深いものにすることができます。
関数パラメータに値が渡されない場合、デフォルトでは、その場合、JavaScript は関数のパラメータを未定義に設定します。他の言語では警告またはエラーが表示されます。パラメータの割り当てを実行するには、if ステートメントを使用して未定義エラーをスローするか、「強制パラメータ」を利用できます。
通常の JavaScript で find 関数を作成したことがある場合は、for ループを使用したことがあるかもしれません。 ES6 では、for ループを実装するための省略表現である find() と呼ばれる新しい配列関数が導入されました。
foo.bar を foo ['bar'] と書くのが一般的ですが、これはこれらの実践は、再利用可能なコードを作成するための基礎を形成します。
ビット演算子は JavaScript 初心者向けチュートリアルの基本的な知識ポイントですが、ビット演算子はあまり使用しません。なぜなら、バイナリを扱わずに 1 と 0 を扱いたい人はいないからです。
ホームページ ウェブフロントエンド jsチュートリアル JavaScript 開発者が知っておくべき簡単なヒント (上級)

JavaScript 開発者が知っておくべき簡単なヒント (上級)

Oct 19, 2018 pm 02:41 PM
JavaScript開発

この記事では、JavaScript 開発者が知っておくべき略語スキル (上級) を紹介します。必要な方は参考にしていただければ幸いです。

1. 変数の割り当て

ある変数の値を別の変数に割り当てる場合は、最初に元の値が null、未定義、空でないことを確認する必要があります。

これは、複数の条件を含む判定ステートメントを記述することで実現できます:

if (variable1 !== null || variable1 !== undefined || variable1 !== '') {
     let variable2 = variable1;
}
ログイン後にコピー

または次の形式に省略できます:

const variable2 = variable1  || 'new';
ログイン後にコピー

次のコードを es6console 、Test に貼り付けることができます。自分で:

let variable1;
let variable2 = variable1  || '';
console.log(variable2 === ''); // prints true
variable1 = 'foo';
variable2 = variable1  || '';
console.log(variable2); // prints foo
ログイン後にコピー

2. デフォルト値の割り当て

予期されるパラメータが null または未定義の場合、デフォルト値を割り当てるために 6 行のコードを記述する必要はありません。短い論理演算子を使用するだけで、同じ操作を 1 行のコードで実行できます。

let dbHost;
if (process.env.DB_HOST) {
  dbHost = process.env.DB_HOST;
} else {
  dbHost = 'localhost';
}
ログイン後にコピー

省略形は:

const dbHost = process.env.DB_HOST || 'localhost';
ログイン後にコピー

3. オブジェクト属性

ES6 は、オブジェクトに属性を割り当てる非常に簡単な方法を提供します。プロパティ名がキー名と同じ場合は、省略形を使用できます。

const obj = { x:x, y:y };
ログイン後にコピー

省略形は:

const obj = { x, y };
ログイン後にコピー

4. アロー関数

古典的な関数は読み書きが簡単ですが、他の関数にネストして呼び出すと、 function 少し長くてわかりにくいかもしれません。このとき、アロー関数を使用してこれを省略できます:

function sayHello(name) {
  console.log('Hello', name);
}
 
setTimeout(function() {
  console.log('Loaded')
}, 2000);
 
list.forEach(function(item) {
  console.log(item);
});
ログイン後にコピー

省略形は:

sayHello = name => console.log('Hello', name);
setTimeout(() => console.log('Loaded'), 2000);
list.forEach(item => console.log(item));
ログイン後にコピー

5 暗黙的な戻り値

戻り値は通常のものです。キーワード関数の最終結果を返すために使用します。ステートメントが 1 つだけあるアロー関数は、暗黙的に結果を返すことができます (return キーワードを省略するには、関数で括弧 ({ }) を省略する必要があります)。

複数行のステートメント (オブジェクト テキストなど) を返すには、{} の代わりに () を使用して関数本体をラップする必要があります。これにより、コードが単一のステートメントとして評価されることが保証されます。

function calcCircumference(diameter) {
  return Math.PI * diameter
}
ログイン後にコピー

省略形は:

calcCircumference = diameter => (
  Math.PI * diameter;
)
ログイン後にコピー

6. デフォルトのパラメータ値

if ステートメントを使用して、関数パラメータのデフォルト値を定義できます。 ES6 では、関数宣言でデフォルト値を定義できると規定されています。

function volume(l, w, h) {
  if (w === undefined)
    w = 3;
  if (h === undefined)
    h = 4;
  return l * w * h;
}
ログイン後にコピー

省略形は:

volume = (l, w = 3, h = 4 ) => (l * w * h);
volume(2) //output: 24
ログイン後にコピー

7. テンプレート文字列

以前は、複数の変数を文字列に変換するために " " を使用していましたが、もっと簡単な方法はどうでしょうか?

ES6 は対応するメソッドを提供しており、バックティックと $ { } を使用して変数を文字列に結合できます。

const welcome = 'You have logged in as ' + first + ' ' + last + '.'
const db = 'http://' + host + ':' + port + '/' + database;
ログイン後にコピー

省略形は:

const welcome = `You have logged in as ${first} ${last}`;
const db = `http://${host}:${port}/${database}`;
ログイン後にコピー

8. 代入の構造化

代入の構造化は、配列またはオブジェクトから属性値を迅速に抽出し、それらを割り当てるために使用される式です。定義された変数。

コードの省略に関しては、代入の構造化を行うと良い結果が得られます。

const observable = require('mobx/observable');
const action = require('mobx/action');
const runInAction = require('mobx/runInAction');
const store = this.props.store;
const form = this.props.form;
const loading = this.props.loading;
const errors = this.props.errors;
const entity = this.props.entity;
ログイン後にコピー

省略形は次のとおりです:

import { observable, action, runInAction } from 'mobx';
const { store, form, loading, errors, entity } = this.props;
ログイン後にコピー

独自の変数名を指定することもできます:

const { store, form, loading, errors, entity:contact } = this.props;
ログイン後にコピー

9 展開演算子は ES6 にあります。スプレッド演算子を使用すると、JavaScript コードをより効率的で興味深いものにすることができます。

一部の配列関数は、スプレッド演算子を使用して置き換えることができます。

// joining arrays
const odd = [1, 3, 5];
const nums = [2 ,4 , 6].concat(odd);
 
// cloning arrays
const arr = [1, 2, 3, 4];
const arr2 = arr.slice( )
ログイン後にコピー

省略形は次のとおりです:

// joining arrays
const odd = [1, 3, 5 ];
const nums = [2 ,4 , 6, ...odd];
console.log(nums); // [ 2, 4, 6, 1, 3, 5 ]
 
// cloning arrays
const arr = [1, 2, 3, 4];
const arr2 = [...arr];
ログイン後にコピー

concat() と concat() の関数の違いは、ユーザーがスプレッド演算子を使用して別の配列を任意の配列に挿入できることです。

const odd = [1, 3, 5 ];
const nums = [2, ...odd, 4 , 6];
ログイン後にコピー

展開演算子と ES6 分割シンボルを一緒に使用することもできます:

const { a, b, ...z } = { a: 1, b: 2, c: 3, d: 4 };
console.log(a) // 1
console.log(b) // 2
console.log(z) // { c: 3, d: 4 }
ログイン後にコピー

10. 必須パラメータ

関数パラメータに値が渡されない場合、デフォルトでは、その場合、JavaScript は関数のパラメータを未定義に設定します。他の言語では警告またはエラーが表示されます。パラメータの割り当てを実行するには、if ステートメントを使用して未定義エラーをスローするか、「強制パラメータ」を利用できます。

function foo(bar) {
  if(bar === undefined) {
    throw new Error('Missing parameter!');
  }
  return bar;
}
ログイン後にコピー

省略形は:

mandatory = ( ) => {
  throw new Error('Missing parameter!');
}
foo = (bar = mandatory( )) => {
  return bar;
}
ログイン後にコピー

11 Array.find

通常の JavaScript で find 関数を作成したことがある場合は、for ループを使用したことがあるかもしれません。 ES6 では、for ループを実装するための省略表現である find() と呼ばれる新しい配列関数が導入されました。

const pets = [
  { type: 'Dog', name: 'Max'},
  { type: 'Cat', name: 'Karl'},
  { type: 'Dog', name: 'Tommy'},
]
function findDog(name) {
  for(let i = 0; i<pets.length; ++i) {
    if(pets[i].type === &#39;Dog&#39; && pets[i].name === name) {
      return pets[i];
    }
  }
}
ログイン後にコピー

省略形は:

pet = pets.find(pet => pet.type ==='Dog' && pet.name === 'Tommy');
console.log(pet); // { type: 'Dog', name: 'Tommy' }
ログイン後にコピー

12. オブジェクト [key]

foo.bar を foo ['bar'] と書くのが一般的ですが、これはこれらの実践は、再利用可能なコードを作成するための基礎を形成します。

次の簡略化された検証関数の例を検討してください:

function validate(values) {
  if(!values.first)
    return false;
  if(!values.last)
    return false;
  return true;
}
console.log(validate({first:'Bruce',last:'Wayne'})); // true
ログイン後にコピー

上記の関数は検証作業を完全に完了します。ただし、フォームが多数ある場合は検証を適用する必要があり、さまざまなフィールドやルールが存在します。実行時に構成できる汎用の検証関数を構築できれば、それは良い選択となるでしょう。

// object validation rules
const schema = {
  first: {
    required:true
  },
  last: {
    required:true
  }
}
 
// universal validation function
const validate = (schema, values) => {
  for(field in schema) {
    if(schema[field].required) {
      if(!values[field]) {
        return false;
      }
    }
  }
  return true;
}
console.log(validate(schema, {first:'Bruce'})); // false
console.log(validate(schema, {first:'Bruce',last:'Wayne'})); // true
ログイン後にコピー

この検証関数を使用すると、フォームごとにカスタム検証関数を作成することなく、すべてのフォームでそれを再利用できるようになります。

13. ダブルビット演算子

ビット演算子は JavaScript 初心者向けチュートリアルの基本的な知識ポイントですが、ビット演算子はあまり使用しません。なぜなら、バイナリを扱わずに 1 と 0 を扱いたい人はいないからです。

しかし、2 ビット演算子には非常に実用的なケースがあります。 Math.floor( ) の代わりに倍ビット演算子を使用できます。ダブルネガティブ位置決め演算子の利点は、同じ操作をより速く実行できることです。

Math.floor(4.9) === 4  //true
ログイン後にコピー

省略形は次のとおりです:

~~4.9 === 4  //true
ログイン後にコピー

上記は、JavaScript 開発者が知っておく必要がある省略テクニック (上級) の完全な紹介です。

JavaScript ビデオについて詳しく知りたい場合は、こちらをご覧ください。チュートリアル

、PHP 中国語 Web サイトに注意してください。

以上がJavaScript 開発者が知っておくべき簡単なヒント (上級)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

徹底した比較: VSCode と Visual Studio の機能の違い 徹底した比較: VSCode と Visual Studio の機能の違い Mar 25, 2024 pm 05:33 PM

タイトル: 徹底した比較: VSCode と Visual Studio の機能の違い、特定のコード例が必要 フロントエンド コードを作成するかバックエンド コードを作成するかにかかわらず、開発者は多くの場合、作業効率を向上させるために自分に合った統合開発環境 (IDE) を選択する必要があります。 。多くの IDE の中でも、VSCode と Visual Studio の 2 つは人気のある製品です。この記事では、2 つの IDE の機能の違いを詳細に比較し、特定のコード例を通してそれを示します。 VSCodeはマイクロソフトによって発売されました

Lauiui はフロントエンド フレームワークですか? Lauiui はフロントエンド フレームワークですか? Apr 01, 2024 pm 11:36 PM

答えは。 Layui は、インターフェイス コンポーネント、データ操作、チャート、アニメーション、レスポンシブ デザインなどの機能を含む、最新の Web アプリケーションを構築するための事前定義されたコンポーネントとツールのセットを提供するフロントエンド フレームワークです。

ECharts は jQuery に依存しますか?徹底した分析 ECharts は jQuery に依存しますか?徹底した分析 Feb 27, 2024 am 08:39 AM

ECharts は jQuery に依存する必要がありますか?詳細な解釈には、特定のコード例が必要です。ECharts は、豊富なチャート タイプと対話型関数を提供する優れたデータ視覚化ライブラリであり、Web 開発で広く使用されています。 ECharts を使用するとき、多くの人は「ECharts は jQuery に依存する必要があるのか​​?」という疑問を持つでしょう。この記事ではこれについて詳しく説明し、具体的なコード例を示します。まず、明確にしておきたいのですが、ECharts 自体は jQuery に依存しません。

JavaScript開発におけるテンプレートエンジンの選択と使用経験の共有 JavaScript開発におけるテンプレートエンジンの選択と使用経験の共有 Nov 04, 2023 am 11:42 AM

JavaScript 開発におけるテンプレート エンジンの選択と使用に関する経験の共有 はじめに: 最新のフロントエンド開発では、テンプレート エンジン (TemplateEngine) が重要な役割を果たします。これらにより、開発者は大量の動的データをより効率的に整理および管理し、データをインターフェイスのプレゼンテーションから効果的に分離できるようになります。同時に、適切なテンプレート エンジンを選択すると、開発者により良い開発エクスペリエンスとパフォーマンスの最適化がもたらされます。しかし、数多くの JavaScript テンプレート エンジンの中で、どれを選択すればよいでしょうか?キャッチ

vscode は一般的に何を記述するために使用されますか? vscode は一般的に何を記述するために使用されますか? Mar 14, 2024 pm 05:54 PM

VSCode は、複数のプログラミング言語とファイル形式をサポートする強力なコード エディターです。 JavaScript、Python、Java、C++、TypeScript、HTML/CSS、Go、その他の言語のサポートが組み込まれており、拡張プラグインを通じて、Rust、C#、Objective-C、PHP、 Ruby、Swift、SQL、XMLなど

XPathを使用して、JavaScriptの指定されたDOMノードから検索する方法は? XPathを使用して、JavaScriptの指定されたDOMノードから検索する方法は? Apr 04, 2025 pm 11:15 PM

JavaScriptのDOMノードの下でのXpath検索方法の詳細な説明、XPath式に基づいてDOMツリーから特定のノードを見つける必要があることがよくあります。あなたがする必要があるなら...

SAP、Datasphere プラットフォームを強化する多数の新しい生成 AI 機能を発表 SAP、Datasphere プラットフォームを強化する多数の新しい生成 AI 機能を発表 Mar 07, 2024 pm 06:55 PM

SAP は、多数の新しい生成 AI 機能を展開しており、これらの機能はまもなく SAP Datasphere プラットフォームで利用できるようになる予定です。 SAPは、最新の更新された機能により、ユーザーはより直観的なビジネスデータ対話エクスペリエンスを提供し、企業のよりスマートな変革の促進に役立つと述べた。これらの新機能には、さまざまなデータ分析タスクを自動化するコパイロット ツールや、より高度な生成 AI ワークロードをサポートするベクトル データベース機能が含まれます。さらに、複雑なデータセットのさまざまな洞察とパターンを明らかにするための新しいナレッジ グラフが開始されました。これらの機能の導入により、ユーザーのワークフローの効率化やデータ分析機能の強化など、企業の意思決定をより包括的に支援します。 2023 年 3 月の SAP データスフィア

JavaScriptの2つのポイント間の角度を効率的に計算する方法は? JavaScriptの2つのポイント間の角度を効率的に計算する方法は? Apr 04, 2025 pm 07:36 PM

JavaScriptでは、1つのポイントの2つのポイント(ラジアン)間の角度を別のポイントに比較して計算する必要性に遭遇することがよくあります。

See all articles