検索
ホームページウェブフロントエンドフロントエンドQ&A15 の JavaScript 開発スキルの要約 (整理および共有)

この記事では、プロジェクトでよく使用されるヒントをいくつか紹介します。JavaScript には、ほとんどの初心者および中級開発者が知らない優れた機能がたくさんあります。みんなが助けてくれることを願っています。

15 の JavaScript 開発スキルの要約 (整理および共有)

#1. オブジェクトに条件付きで属性を追加する

展開演算子 (. . .) 条件付きでプロパティを JS オブジェクトにすばやく追加します。

const condition = true;
const person = {
  id: 1,
  name: 'John Doe',
  ...(condition && { age: 16 }),
};

&& 演算子は、各オペランドが true と評価された場合、最後に評価された式を返します。したがって、オブジェクト {age: 16} が返され、これが person オブジェクトの一部として展開されます。

条件が false の場合、JavaScript は次のような処理を行います:

const person = {
  id: 1,
  name: '前端小智',
  ...(false), 
};
// 展开 `false` 对对象没有影响
console.log(person); // { id: 1, name: 'John Doe' }

2. オブジェクトに属性が存在するかどうかを確認します

in キーワードを使用すると、JavaScript オブジェクトに特定の属性が存在するかどうかを確認できます。

const person = { name: '前端小智', salary: 1000 };
console.log('salary' in person); // true
console.log('age' in person); // false

3. オブジェクトの動的プロパティ名

動的キーを使用してオブジェクト プロパティを設定するのは簡単です。 ['key name'] を使用してプロパティを追加するだけです:

const dynamic = 'flavour';
var item = {
  name: '前端小智',
  [dynamic]: '巧克力'
}
console.log(item); // { name: '前端小智', flavour: '巧克力' }

同じトリックを使用して、動的キーを使用してオブジェクト プロパティを参照できます:

const keyName = 'name';
console.log(item[keyName]); // returns '前端小智'

4。動的を使用します。キーによるオブジェクトの構造化

オブジェクトを構造化するときに、次を使用して構造化された属性の名前を変更できることがわかりました。しかし、キー名が動的である場合、オブジェクトのプロパティを分解することもできることをご存知ですか?

const person = { id: 1, name: '前端小智' };
const { name: personName } = person;
console.log(personName); // '前端小智'

ここで、動的キーを使用してプロパティを構造化します:

const templates = {
  'hello': 'Hello there',
  'bye': 'Good bye'
};
const templateName = 'bye';
const { [templateName]: template } = templates;
console.log(template); // Good bye

5. Null 値のマージ?? Operator# # ?? 演算子は、変数が null か未定義かを確認する場合に便利です。左オペランドが null または未定義の場合は右オペランドを返し、それ以外の場合は左オペランドを返します。

const foo = null ?? 'Hello';
console.log(foo); // 'Hello'
const bar = 'Not null' ?? 'Hello';
console.log(bar); // 'Not null'
const baz = 0 ?? 'Hello';
console.log(baz); // 0

3 番目の例では、JS では 0 が false とみなされますが、null または未定義ではないため、0 が返されます。 || 演算子を使用できると思うかもしれませんが、この 2 つは違います。

ここで || 演算子を使用できると思うかもしれませんが、この 2 つは違います。

const cannotBeZero = 0 || 5;
console.log(cannotBeZero); // 5
const canBeZero = 0 ?? 5;
console.log(canBeZero); // 0

6. オプションのチェーン?.次のようなエラーがよく発生します: TypeError: null のプロパティ 'foo' を読み取れません。これはすべての開発者にとって悩ましい問題です。この問題を解決するために、オプションのチェーンが導入されました。見てみましょう:

const book = { id:1, title: 'Title', author: null };
// 通常情况下,你会这样做
console.log(book.author.age) // throws error
console.log(book.author && book.author.age); // null
// 使用可选链
console.log(book.author?.age); // undefined
// 或深度可选链
console.log(book.author?.address?.city); // undefined

次の関数オプション チェーンも使用できます:

const person = {
  firstName: '前端',
  lastName: '小智',
  printName: function () {
    return `${this.firstName} ${this.lastName}`;
  },
};
console.log(person.printName()); // '前端 小智'
console.log(persone.doesNotExist?.()); // undefined

7. !! 演算子 ## を使用します。 #!! 演算子を使用すると、式の結果をブール値 (true または false) にすばやく変換できます:

const greeting = 'Hello there!';
console.log(!!greeting) // true
const noGreeting = '';
console.log(!!noGreeting); // false

8. 文字列と整数の変換

演算子を使用して文字列を数値にすばやく変換します:

const stringNumer = '123';
console.log(+stringNumer); //123
console.log(typeof +stringNumer); //'number'

数値を文字列にすばやく変換するには、演算子の後に空の文字列を続けることもできます:

const myString = 25 + '';
console.log(myString); //'25'
console.log(typeof myString); //'string'

これらの型変換は非常に便利ですが、コードの明瞭性と可読性が低下します。したがって、実際の開発では慎重に選択して使用する必要があります。

9. 配列内の false 値をチェックする

誰もが配列メソッドを使用したはずです: filter、some、every、これらのメソッドブール値メソッドを組み合わせて使用​​して、true と false の値をテストできます。

const myArray = [null, false, 'Hello', undefined, 0];
// 过滤虚值
const filtered = myArray.filter(Boolean);
console.log(filtered); // ['Hello']
// 检查至少一个值是否为真
const anyTruthy = myArray.some(Boolean);
console.log(anyTruthy); // true
// 检查所有的值是否为真
const allTruthy = myArray.every(Boolean);
console.log(allTruthy); // false

仕組みは次のとおりです。これらの配列メソッドがコールバック関数を受け入れることがわかっているので、コールバック関数としてブール値を渡します。ブール関数自体はパラメーターを受け入れ、パラメーターの真偽に応じて true または false を返します。したがって:

myArray.filter(val => Boolean(val));

は次と同等です:

myArray.filter(Boolean);

10. 配列の平坦化

プロトタイプ配列にはメソッドがありますflat は、配列の配列から単一の配列を作成できます。

const myArray = [{ id: 1 }, [{ id: 2 }], [{ id: 3 }]];
const flattedArray = myArray.flat(); 
//[ { id: 1 }, { id: 2 }, { id: 3 } ]

深さレベルを定義して、ネストされた配列構造をどの程度の深さまで平坦化するかを指定することもできます。例:

const arr = [0, 1, 2, [[[3, 4]]]];
console.log(arr.flat(2)); // returns [0, 1, 2, [3,4]]

11.Object.entries

ほとんどの開発者は、Object.keys メソッドを使用してオブジェクトを反復処理します。このメソッドはオブジェクト キーの配列のみを返し、値は返しません。 Object.entries を使用してキーと値を取得できます。

const person = {
  name: '前端小智',
  age: 20
};
Object.keys(person); // ['name', 'age']
Object.entries(data); // [['name', '前端小智'], ['age', 20]]

オブジェクトを反復処理するには、次のようにします。

Object.keys(person).forEach((key) => {
  console.log(`${key} is ${person[key]}`);
});
// 使用 entries 获取键和值
Object.entries(person).forEach(([key, value]) => {
  console.log(`${key} is ${value}`);
});
// name is 前端小智
// age is 20

上記のメソッドはどちらも同じ結果を返しますが、Object.entries の方がキーと値のペアを取得するのが簡単です。

12.replaceAll メソッド

JS で、出現する文字列をすべて別の文字列に置き換えるには、次の正規表現を使用する必要があります。表示:

const str = 'Red-Green-Blue';
// 只规制第一次出现的
str.replace('-', ' '); // Red Green-Blue
// 使用 RegEx 替换所有匹配项
str.replace(/\-/g, ' '); // Red Green Blue

しかし、ES12 では、replaceAll という新しいメソッドが String.prototype に追加されました。これは、出現する文字列をすべて別の文字列値に置き換えます。

str.replaceAll('-', ' '); // Red Green Blue

13. 数値区切り文字

アンダースコアを数値区切り文字として使用できるため、数値内の 0 の数を数えやすくなります。 。

// 难以阅读
const billion = 1000000000;
// 易于阅读
const readableBillion = 1000_000_000;
console.log(readableBillion) //1000000000

下划线分隔符也可以用于BigInt数字,如下例所示

const trillion = 1000_000_000_000n;
console.log(trillion); // 1000000000000

14.document.designMode

与前端的JavaScript有关,设计模式让你可以编辑页面上的任何内容。只要打开浏览器控制台,输入以下内容即可。

document.designMode = 'on';

15.逻辑赋值运算符

逻辑赋值运算符是由逻辑运算符&&、||、??和赋值运算符=组合而成。

const a = 1;
const b = 2;
a &&= b;
console.log(a); // 2
// 上面等价于
a && (a = b);
// 或者
if (a) {
  a = b
}

检查a的值是否为真,如果为真,那么更新a的值。使用逻辑或 ||操作符也可以做同样的事情。

const a = null;
const b = 3;
a ||= b;
console.log(a); // 3
// 上面等价于
a || (a = b);

使用空值合并操作符 ??:

const a = null;
const b = 3;
a ??= b;
console.log(a); // 3
// 上面等价于
if (a === null || a === undefined) {
  a = b;
}

注意:??操作符只检查 null 或 undefined 的值。

【相关推荐:javascript学习教程

以上が15 の JavaScript 開発スキルの要約 (整理および共有)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は掘金で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
HTMLとReactの統合:実用的なガイドHTMLとReactの統合:実用的なガイドApr 21, 2025 am 12:16 AM

HTMLとReactは、JSXを介してシームレスに統合して、効率的なユーザーインターフェイスを構築できます。 1)JSXを使用してHTML要素を埋め込み、2)仮想DOMを使用してレンダリングパフォーマンスを最適化し、3)コンポーネントを通じてHTML構造を管理およびレンダリングします。この統合方法は直感的であるだけでなく、アプリケーションのパフォーマンスを向上させます。

ReactおよびHTML:レンダリングデータと取り扱いイベントReactおよびHTML:レンダリングデータと取り扱いイベントApr 20, 2025 am 12:21 AM

React Reactは、状態および小道具を介してデータを効率的にレンダリングし、合成イベントシステムを介してユーザーイベントを処理します。 1)Counterの例など、UseStateを使用して状態を管理します。 2)イベント処理は、ボタンクリックなどのJSXに関数を追加することにより実装されます。 3)トドリストコンポーネントなどのリストをレンダリングするには、重要な属性が必要です。 4)フォーム処理の場合、FormコンポーネントなどのuseStateおよびe.preventdefault()。

バックエンド接続:Reactがサーバーとどのように相互作用するかバックエンド接続:Reactがサーバーとどのように相互作用するかApr 20, 2025 am 12:19 AM

Reactは、HTTP要求を介してサーバーと対話し、データを取得、送信、更新、削除します。 1)ユーザー操作はイベントをトリガーします。2)HTTP要求を開始する、3)サーバーの応答をプロセス、4)コンポーネントのステータスと再レンダリングを更新します。

React:ユーザーインターフェイスに焦点を当てる(Frontend)React:ユーザーインターフェイスに焦点を当てる(Frontend)Apr 20, 2025 am 12:18 AM

Reactは、コンポーネント開発と仮想DOMを通じて効率を向上させるユーザーインターフェイスを構築するためのJavaScriptライブラリです。 1。コンポーネントとJSX:JSX構文を使用してコンポーネントを定義して、コードの直感性と品質を高めます。 2。仮想DOMおよびレンダリング:仮想DOMおよびDIFFアルゴリズムを介してレンダリングパフォーマンスを最適化します。 3。状態管理とフック:UseStateやUseefectなどのフックは、状態管理と副作用の取り扱いを簡素化します。 4。使用例:基本形式から高度なグローバルな州管理まで、Contextapiを使用します。 5.一般的なエラーとデバッグ:不適切な状態管理とコンポーネントの更新の問題を避け、ReactDevtoolsを使用してデバッグします。 6。パフォーマンスの最適化と最適性

Reactの役割:フロントエンドまたはバックエンド?区別を明確にしますReactの役割:フロントエンドまたはバックエンド?区別を明確にしますApr 20, 2025 am 12:15 AM

ReactisaFrontendLibrary、focusedonbuildinguserinterfaces.itmanagesUistateandupdateSeSefiedlyusingingingingualdod、およびinteractswithbackendservicesviaapisfordatahandling、butdoesnotprocessorstoredatoredaitaits

HTMLで反応する:インタラクティブなユーザーインターフェイスを構築しますHTMLで反応する:インタラクティブなユーザーインターフェイスを構築しますApr 20, 2025 am 12:05 AM

ReactをHTMLに組み込み、従来のHTMLページを強化または完全に書き換えることができます。 1)Reactを使用するための基本的な手順には、HTMLにルートDIVを追加し、ReactDom.Render()を介してReactコンポーネントをレンダリングすることが含まれます。 2)より高度なアプリケーションには、UseStateを使用して状態を管理し、カウンターやTo Doリストなどの複雑なUI相互作用を実装することが含まれます。 3)最適化とベストプラクティスには、コードセグメンテーション、怠zyな読み込み、React.memoとusememoを使用してパフォーマンスを向上させることが含まれます。これらの方法を通じて、開発者はReactの力を活用して、動的で応答性の高いユーザーインターフェイスを構築できます。

React:現代のフロントエンド開発の基礎React:現代のフロントエンド開発の基礎Apr 19, 2025 am 12:23 AM

Reactは、最新のフロントエンドアプリケーションを構築するためのJavaScriptライブラリです。 1.パフォーマンスを最適化するために、コンポーネントおよび仮想DOMを使用します。 2。コンポーネントJSXを使用して、データを管理するために定義、状態、および属性を定義します。 3.フックはライフサイクル管理を簡素化します。 4. Contextapiを使用して、グローバルステータスを管理します。 5.一般的なエラーには、デバッグステータスの更新とライフサイクルが必要です。 6。最適化手法には、メモ、コード分割、仮想スクロールが含まれます。

Reactの未来:Web開発におけるトレンドと革新Reactの未来:Web開発におけるトレンドと革新Apr 19, 2025 am 12:22 AM

Reactの未来は、究極のコンポーネント開発、パフォーマンスの最適化、および他のテクノロジースタックとの深い統合に焦点を当てます。 1)Reactは、コンポーネントの作成と管理をさらに簡素化し、究極のコンポーネント開発を促進します。 2)特に大規模なアプリケーションでは、パフォーマンスの最適化が焦点になります。 3)Reactは、開発エクスペリエンスを改善するために、GraphQLやTypeScriptなどのテクノロジーと深く統合されます。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、