検索

ESLint は、フロントエンド業界の巨匠である Nicholas C. Zakas によって 2013 年に開発され、JavaScript コードのコード仕様のチェックをすべての人が大幅に容易にします。このツールには 200 以上の Javascript コーディング標準が含まれており、ほぼすべてのフロントエンド プロジェクトにとって不可欠な補助ツールです。しかし、ルールが多すぎると、各ルールの設計の出発点は何なのか、自分のプロジェクトに適したルールをどのように選択すればよいのか、という新たな疑問が生じています。少し前に、私が取り組んでいたプロジェクトでフロントエンド コードのコード標準が必要になり始めたので、eslint の 230 のルールを詳細に整理しました。より重要なルールや特別なルールをいくつか抜粋してここにリストしました。これが皆さんの作業に役立つことを願っています。

  1. no-debugger

    一般に、コード内にデバッガーが表示されることは望ましくありません。ただし、デバッガーはプロジェクトの開発段階では依然として非常に役立つため、このキーワードを完全に無効にするわけではありません。ただし、次のように構成を使用します:

    'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0

    このようにして、開発者はデバッガーを使用して、ローカルでさまざまなデバッグを簡単に実行できます。同時に、オンライン コードに削除され忘れられたデバッガーが存在しないようにします

  2. no-extra-boolean-cast

    多くの古い JavaScript コードで次の記述が見られます:

    var boolResult = !!parameter ;

    これは実際には暗黙的な型変換ですが、jsの暗黙的な変換の詳細なルールを本当に知っていますか?実際、書籍「JavaScript による高度なプログラミング」の中で、著者は暗黙的な型変換をできるだけ使用しないよう明確に警告しています。この変換ルールは非常に複雑であるため、潜在的な問題を回避するためにこのルールをオンにしました

  3. no-inner-declarations

    ES6 より前では、関数宣言はプログラムの先頭または別の関数の本体でのみ行うことができたので、コード ブロック内で関数を宣言するのは間違ったアプローチでした。さらに、JavaScript のコード宣言はコードの現在のスコープの先頭に昇格されるため、コード ブロック内で変数を宣言することは賢明ではありません。これは多くの人が無視しがちな点です。 JavaScript コードでは、NaN を任意の変数と比較すると false になり、それ自体と比較しても false になります。したがって、変数が NaN であるかどうかを判断したい場合は、 isNaN メソッドを使用する必要があります

  4. eqeqeq

    このルールは、すべての JavaScript 開発者が遵守していると言えます。 == と != を無効にして = を使用します。代わりに = = と !== を使用します。理由は上記の項目 2 と同じです。== と != は暗黙の型変換を引き起こします。JavaScript の実行中に変換エラーは発生しませんが、将来コードを保守する人はそれを誤解する可能性があります。ルールは Essential

  5. no-caller

    簡単に言うと、これは ES6 より前の API ですが、この API は特殊なシナリオ (匿名再帰関数) でのいくつかの問題を解決するのに役立ちます。ただし、これら 2 つの API を悪用するとさらに多くの問題が発生するため、この API は ES6 では非推奨となり、ES5 の厳密モードでも無効になっています。この API の使用法について詳しく知りたい場合は、MDN で詳細な手順を確認してください

  6. no-extend-native

    ネイティブ オブジェクト プロトタイプを拡張しないでください。オブジェクトの for in ステートメントを使用してオブジェクトのプロパティをトラバースするが、プロパティのソースを決定するために hasOwnProperty を使用するのを忘れると、拡張したプロトタイプのプロパティもトラバースされることがわかりますが、これは多くの場合、私たちが望んでいることではありません。

  7. no-restricted-properties

    の結果は、実際には、指定されたオブジェクトの指定されたメソッドを無効にすることができるツールです。たとえば、開発者が、ajax リクエストを行うときに、jQuery の ajax メソッドではなく、独自のカプセル化された ajax メソッドを使用することを望んでいます。この設定を使用して、規制に準拠していないコードを検出できます

  8. いいえ。 -sequences

    コンマ式は、実際には for ループなどでよく使用される文法機能です。ただし、次のような間違いを犯しやすい使い方もたくさんあります。

    a = b += 3, a + b;

  9. 値が何であるかはご存知でしょう。このときaとbは何ですか?このルールを有効にしても、for ループやその他のエラーが発生しにくいシナリオでカンマ式を使用できますが、ESLint によってルールに違反しているかどうかを確認されるメッセージが表示された場合は、コードを変更する必要があります。
  10. さらに、上記の a と b の値は両方とも 4 です

    no-with

    with ステートメントはスコープチェーンを変更するためのものですが、場合によっては with ステートメントを使用してコードを簡素化することもできます。

    with(frames[0].document.forms[1]){
        console.log(name.value);    // 可直接访问 form 里面的 name 属性
    }
  11. ただし、場合によっては、with ステートメントによってコードが理解しにくくなる場合もあります。たとえば、次のコードでは、出力されたログ オブジェクトが受信パラメーターであるかどうかを確認できません。またはobjの属性:
  12. 所以,我们还是应该尽量避免使用 with 语句

  13. function f(log, obj) {
        with (obj) {
            console.log(log)
        }
    }

 

最后附上 ESLint 规则列表,详细列出了每天规则的名称,官方是否推荐开启,以及每条规则是否能够用 --fix 参数自动修复。

 

在下一篇文章中,我会再选取 10 条规则进行分析,并整理出一个包含中文翻译的 ESLint 规则列表,敬请期待。

 

以上就是ESLint 规则详解(一)的内容,更多相关内容请关注PHP中文网(www.php.cn)!


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

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

ブラウザを超えて:現実世界のJavaScriptブラウザを超えて:現実世界のJavaScriptApr 12, 2025 am 12:06 AM

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)Apr 11, 2025 am 08:23 AM

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)Apr 11, 2025 am 08:22 AM

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScript:Web言語の汎用性の調査JavaScript:Web言語の汎用性の調査Apr 11, 2025 am 12:01 AM

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

JavaScriptの進化:現在の傾向と将来の見通しJavaScriptの進化:現在の傾向と将来の見通しApr 10, 2025 am 09:33 AM

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

javascriptの分解:それが何をするのか、なぜそれが重要なのかjavascriptの分解:それが何をするのか、なぜそれが重要なのかApr 09, 2025 am 12:07 AM

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

pythonまたはjavascriptの方がいいですか?pythonまたはjavascriptの方がいいですか?Apr 06, 2025 am 12:14 AM

Pythonはデータサイエンスや機械学習により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、簡潔な構文とリッチライブラリエコシステムで知られており、データ分析とWeb開発に適しています。 2。JavaScriptは、フロントエンド開発の中核です。 node.jsはサーバー側のプログラミングをサポートしており、フルスタック開発に適しています。

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

AI Hentai Generator

AI Hentai Generator

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

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

DVWA

DVWA

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

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

メモ帳++7.3.1

メモ帳++7.3.1

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

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター