ホームページ > ウェブフロントエンド > フロントエンドQ&A > JavaScript はフロントエンドの記述にのみ使用できますか?

JavaScript はフロントエンドの記述にのみ使用できますか?

青灯夜游
リリース: 2022-10-09 17:24:38
オリジナル
2168 人が閲覧しました

JavaScript はフロントエンドを作成できるだけでなく、バ​​ックエンドも作成できます。JavaScript は Node.js を使用してバックエンド開発を実現できます。 Node.js は、サーバー上で JavaScript を実行できるようにする開発プラットフォームです。これは、イベント駆動型の「I/O」サーバーサイド JavaScript 環境です。Node.js はサーバー上で実行される JavaScript として理解できるため、JavaScript はバックエンドに書かれています。

JavaScript はフロントエンドの記述にのみ使用できますか?

このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

JavaScript はフロントエンドを作成できるだけでなく、バ​​ックエンドも作成できます。

JavaScript は、Node.js テクノロジを通じてバックエンド開発を実現できます。Node.js は、JavaScript をサーバー上で実行できる開発プラットフォームです。これにより、JavaScript を PHP、Python、 Perl、Ruby など。端末言語と同等のスクリプト言語。

Node.js は、サーバー側で js を実行できるようにし、Google v8 エンジンを使用してパフォーマンスを飛躍的に向上させ、そのパフォーマンスを Go 言語のパフォーマンスにほぼ近づけます。非同期プログラミング手法により、大量の同時実行を処理できます。しかし、これには次の欠点もあります:

Java の Spring フレームワークのような高度に統一された開発手法はなく、エコロジーは十分に完璧ではありません。まずは自分自身が恥ずかしいかもしれません。しかし、実は中小規模のシステムの場合、バックエンド開発で最も重要なのは「SQL」に慣れることであり、これをマスターすればバックエンド開発を始めることができます。それ以外はすべてフレームワークによって準備されているからです。

フレームワークの選択

現在バックエンド開発に使用されているノード フレームワークは次のとおりです:

  • egg
  • express
  • koa
  • nest
  • 。 。 。

それでは、どのように選択すればよいでしょうか? 良い方法は、github の始まりを見て、最も人気のある koa の始まりを比較することです。ただし、著者は次の理由から、すべての人に Egg を使用することを推奨しています:

  • Alibaba Financial Services によって開発され、メンテナンスとアップグレードの反復が保証されています;
  • 最下層は koa に基づいています;
  • 導入 マルチコアを簡単に使用して、サービス提供時にサーバーのパフォーマンスを圧迫できます;
  • 豊富なプラグインを選択でき、独自のプラグインをカスタマイズすることもできます;
  • 小規模および中規模のシステムには推奨されません ネストのような springboot のようなフレームワークを使用する場合は、より完全で健全で安定した Springboot を直接使用することをお勧めします。
##javascript バックエンドを書く前に知っておくべきこと

Node は、JS がフロントエンドしか開発できないというボトルネックを打破し、開発者の偉業を真に実現します。 JSマスターが世界征服!ただし、バックエンドの実行はフロントエンドの実行よりもはるかに厳密であるため、JS 言語のいくつかの「バグ」に注意する必要があります。データを間違えないでください。完全に混乱してしまいます。

以下は、JS データ処理における一般的な問題とその解決策の例です。全員が JS の基礎を強化し、作業の回り道を避けることができるように支援します。

1. 浮動小数点データの精度が失われる問題:

浮動小数点型は 単精度浮動小数点型 (float)

倍精度浮動小数点型(double) は、強く型付けされた言語(C、JAVA)で詳細に記述されており、JSではNumber型(Number) と総称されます。この記事では引き続き上記の質問に戻ります。 まず、精度損失問題のパフォーマンスを確認します。ソース コードは次のとおりです:

console.log(0.1+0.2);    //0.30000000000000004
ログイン後にコピー

結果は

0.3

になるはずです。しかし、実行結果が表示されます わかりにくい質問です。これはバックエンド開発では絶対に許可されません。この問題は JS だけで発生するものではありません。テストした結果、この問題は JAVA と PHP には存在しますが、C には存在しません。なぜ他の言語を学ばなかったのですか?理由がわからない! 問題について話した後、解決策について話しましょう。ソース コードは次のとおりです:

const floatAdd = (arg1, arg2) => {
    let r1,r2,m;
    try {
    	r1 = arg1.toString().split(".")[1].length;
    } catch(e) {
    	r1 = 0;
    }
    try {
    	r2 = arg2.toString().split(".")[1].length;
    } catch(e) {
    	r2 = 0;
    }
    m  =Math.pow(10,Math.max(r1,r2));
    return (arg1*m+arg2*m)/m;
};

console.log(floatAdd(0.1,0.2));    // 0.3
ログイン後にコピー

幸いなことに、上記のコードにより、望んでいた正しい結果が得られましたが、JS はそのまま残りました。私たちに問題があります まだ終わっていません。次の質問を参照してください。

2. toFixed() の丸めバグ:

toFixed()
このメソッドは固定小数点表記を使用して数値をフォーマットします。簡単に言うとデータを四捨五入する処理で、固定小数点は保持する小数点以下の桁数を表します。

この質問は、前の質問「浮動小数点」データにまだ関連しています。以下のサンプル コードを参照してください:

let a=1.115;
console.log(a.toFixed(2))    //1.11
ログイン後にコピー
幸いなことに、編集者は小学校の数学が得意で、数年間、数学のクラス委員を務めています。(喜びが爆発して)正解は

1.12

であることが一目でわかります。賢いエディターは、落とし穴を回避する方法を見つけるために懸命に努力しています。ソース コードを参照してください:

const newToFixed=(value,length)=>{  
    let tempNum = 0;  
    let s,temp;  
    let s1 = value + "";  
    let start = s1.indexOf(".");  
    if(s1.substr(start+length+1,1)>=5){
        tempNum=1;  
    }
    temp = Math.pow(10,length);  
    s = Math.floor(value * temp) + tempNum;  
    return s/temp;  
}

console.log(newToFixed(1.115,2))    //1.12
ログイン後にコピー
JS を使用してバックエンド アプリケーションを開発する場合、これらのデータの異常に注意する必要があります。さらに質問がある場合は、読者が自分で勉強することをお勧めします。


数千万行のコード、最初の基本行。基礎がしっかりしていないので、これから涙が出てきます。

注: コード例では ECMAScript 2015 バージョンの構文を使用しています。互換性要件がある場合は、ソース コードを変更することを忘れないでください。

数千万行のコードは最初の行と互換性があります。相性があろうがなかろうが、最初の2行で涙を流してしまいました。

[関連する推奨事項: Web フロントエンド開発]

以上がJavaScript はフロントエンドの記述にのみ使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
関連するチュートリアル
人気のおすすめ
最新のコース
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート