タグ付けされた質問 「javascript」

JavaScript(Javaと混同しないでください)は、クライアント側とサーバー側の両方のスクリプトで使用される、高レベルで動的なマルチパラダイムの弱く型付けされた言語です。ECMAScript、JavaScript、JScriptなどの一般的な実装に関する質問には、このタグを使用します。JSは通常、そのECMA従兄弟であるActionScriptを参照しません。


4
関数ではなく変数としての関数宣言
関数が次のように宣言されるのをますます見ています var foo = function() { // things }; 私が学んだ方法の代わりに function foo() { // things } 違いは何ですか?よりよい性能?範囲?この方法を使用する必要がありますか?

2
XMLHttpRequestが命名規則に従っていないように見えるのはなぜですか?
私は最近JavaScriptでXMLHttpRequestオブジェクトを操作してきましたが、この名前の大文字と小文字が意味をなさないことに気づかずにはいられませんでした。「XML」はすべて大文字ですが、「Http」は大文字ではないのはなぜですか?両方とも頭字語です! 名前が次のいずれかであると、より意味があります。 XmlHttpRequest (PascalCase、JavaScriptのクラス名のベストプラクティス) xmlHttpRequest (camelCase、クラス用ではないが一般的) XMLHTTPRequest (頭字語のキャップ、プログラミングではめったに使用されない?) 何らかの理由があるに違いないと確信しているし、誰もこれを疑問視しなかったからといって、今ではそれが石になっているとは思わない。私が知らない別の命名規則はありますか?

10
プログラマーは静的言語に慣れていて、Javascriptツールの欠如にどのように対処していますか
私はほとんどの場合、ほとんどの場合、コンパイルされた言語、特にJavaでのみプログラミングを行ってきました。Javaについての私のお気に入りの1つは、Eclipseのようなツールを使用するとき、どれだけ生産性が高く、実際にコードを書く必要があるかということです。 あなたはできる: メソッドとクラスを簡単かつ自動的にリファクタリングします メソッドが呼び出された場所、または定数が使用された場所をすべて即座に表示する(コール階層を開く/参照を表示) 静的型付けとは、コード補完を使用して、オブジェクトで使用可能なすべてのパラメーター/関数を表示できることを意味します Ctrlキーを押しながら関数/メンバー/クラス名をクリックして、その定義に直接移動します これらすべての機能は、IDEが私の親友であると感じさせます。Javaコードを記述し、特に他の人のプログラムを理解するのがはるかに簡単になります。 しかし、私はますますJavascriptの使用を求められており、これまでの私の経験は非常に否定的でした。 特に: 関数のエントリポイントをすぐに見つける方法はありません(プレーンテキスト検索では、呼び出し階層のさらに上のメソッドの検索が行われる可能性があります。 パラメーターは関数に渡され、そのパラメーターで使用可能なプロパティと関数を知る方法はありません(実際にプログラムを実行し、関数が呼び出されるポイントに移動し、console.logsを使用してすべてのプロパティを出力する以外利用可能) コールバックとしての匿名関数の一般的な使用法は、しばしば混乱するコードパスのスパゲッティにつながり、すぐに移動することはできません。 確かに、JSLintは実行前にいくつかのエラーをキャッチしますが、それでも、ブラウザーでコードの下に赤い波線を表示するほど便利ではありません。 結局のところ、プログラム全体を常に頭に置く必要があるということです。これにより、複雑なプログラムを作成するための認知的負荷が大幅に増加します。そして、心配するこれらすべての余分なものは、実際の創造性と問題解決のための私の脳内のスペースを少なくします。 確かに、正式なクラス定義全体を記述するよりも、オブジェクトを一緒にスローする方が高速です。しかし、プログラムはわずかに簡単かつ迅速に作成できますが、私の経験では、プログラムの読み取りとデバッグははるかに困難です。 私の質問は、他のプログラマーがこれらの問題にどのように対処するかということです。Javascriptは明らかに人気が高まっており、私が読んだブログは、これらの問題の解決策を必死に見つけようとするのではなく、人々の生産性に関するものです。 GWTを使用すると、代わりにJavaでJavascript環境のコードを記述できますが、私が期待するほど広く使用されているようには見えません。実際、人々は複雑なプログラムにはJavascriptを好むようです。 私は何が欠けていますか?

4
単一ページのアプリケーションへのログインページを別のページにするのはなぜですか?
SPAのログインページをSPAのページではない別のページにするのが一般的であるように思えるのはなぜですか? 私が考えることができるのはセキュリティだけですが、特定のセキュリティの理由を考えることはできません。ログインページがSPAの一部である場合、FirebugやWebインスペクターなどのツールで見ることができるajaxを介してユーザー名/パスワードを送信しますが、通常として送信してもPOSTリクエスト。このデータを簡単にキャプチャできる他のツール(フィドラー、httpscoopなど)があります。 何か足りないものはありますか?

3
単一ページアプリでのブラウザーキャッシュの処理
単一ページアプリのWebブラウザキャッシュを適切に処理する方法を見つけようとしています。 私はかなり典型的なデザインを持っています:SPAを実装するいくつかのHTML、JS、CSSファイル、およびSPAによって消費されるJSONデータの束。更新をプッシュするときに問題が発生します:サイトの静的部分とJSONを生成するコードを同時に更新しますが、クライアントブラウザーには静的部分がキャッシュされていることが多いため、古いコードは新しいデータを処理しようとし、 (行われた変更に応じて)問題が発生する場合があります。(特に、IEは、再検証せずにキャッシュされたJSを使用することについて、ChromeまたはFirefoxよりも積極的です。) これを処理する最良の方法は何ですか? JSONの変更に後方互換性があることを確認し、妥当な時間内にブラウザーのキャッシュが期限切れになると仮定します。 静的JSとJSONの両方に何らかのバージョン番号を埋め込み、window.location.reload(true);一致しない場合は実行します。 ヘッダーの適切な組み合わせ(must-revalidateまたはno-cache何でも; ソース はこれを行う方法によって異なります)を把握して、サイトをロードするための余分な往復を意味する場合でも、ブラウザーがすべてのロードで常にすべてのリソースを再検証するようにします。 更新をプッシュするときに静的コンテンツが期限切れになるように、キャッシュコントロールと期限切れヘッダーをマイクロ管理します。 他に何か?

3
サーバー側とクライアント側とハイブリッドでWebアプリを構築していますか?[閉まっている]
現在、Webアプリケーションを構築する方法は複数あります。 1.サーバー側のみ これは、Ruby on Rails、Django、Express、PlayなどのWebフレームワークによってサーバー上のページをレンダリングする古典的なアプローチです。フレームワークなど 典型的なワークフロー:選択したフレームワークでサーバー上にすべてのビジネスロジック、モデル、およびビューテンプレートを構築します。 2.クライアント側+ REST API 比較的前に、Webコミュニティ全体が、Angular、Backbone、Ember、およびその他の数十のJavaScript MV *フレームワークでクライアント側アプリケーションの構築を開始しました。そして今、React.jsもパーティーに参加しています。 更新:誤解はありません。クライアント側のみが意味することは、懸念事項を完全に分離することです。REST APIサーバーと、そのサーバーと通信するクライアント側アプリケーションがあります。ユースケースにもよりますが、認証またはデータ永続化のためにバックエンドに接続しない真のクライアント側のみのアプリケーションは決してないでしょう。 典型的なワークフロー:Angular vs Backbone vs Ember vs Xを決める時間を費やします。次に、クライアントでルート、モデル、ビュー、コントローラーを構築します。完了したら、サーバー上でモデル、コントローラー、ルートを構築します。ある意味では、2倍の量の仕事をしています。 3.ハイブリッド このアプローチの使用についてはあまり知りませんが、推測する場合は、サーバーでビュー(MVCフレームワークのビュー)をレンダリングします。その結果、SEOサポートに加えて、ページの読み込みが高速化されます。 上のハイブリッドフロントairbnbのありrendrおそらくバックボーンを組み合わせて、一緒に表現しています。 Eric Florenzoが今日彼のブログに投稿しました:React:最後に、素晴らしいサーバー/クライアントWebスタック。 Webアプリケーションを構築する方法の量は圧倒的です。そして、ウェブ開発を学んでいる人にとって、これは問題になる可能性があります。次のアプリケーションを構築するために、どのアプローチを使用するかをどのように決定しますか?

2
ASM.jsとは何ですか?また、それはすべての人にとって何を意味しますか?
ASM.jsと呼ばれるこのプロジェクトについて不平を聞き始めています。現在、彼らのウェブサイトはひどく混乱しています。以下は、Webでの調査でわかったことです。 これは、高度に最適化できるJavaScriptのサブセットです。言語のより動的な部分を避けるためだと思います。 ASM.jsにコンパイルされたコードのパフォーマンスは、Cの約半分の速度で実行されます(光ではありません)。 その意図は、コンパイラーがターゲット言語ASM.jsを作成することです。 FirefoxはASM.js最適化が組み込まれた状態で出荷されます。 MozillaとUnrealのチームが移植されたウェブにアンリアル・エンジンをそれにしてのビルドでランニングのFirefox、ネイティブに近いスピードで。 これが実際に何であるか、または有用性または究極の目的に関する具体的な情報はウェブ上にないようです。それ以外の場合はサーバー側のコードベースをコンパイルし、ブラウザにネイティブに近い速度で実行させることができますか?開発者にとっての影響は何ですか?

3
WebStormにはRubyMineにはない機能が含まれていますか?
少量のルビーを実行していますが、大量のhtml5 / javascriptを実行しているため、Rubymineの購入を検討しています。 私が取り組んでいる純粋なhtml5 / jsベースのフレームワーク/アプリがたくさんあるので、Webstormを取得するつもりでしたが、WebStorm / PhpStorm / RubymineなどはすべてIDEAフレームワークに基づいており、とにかく、各フレームワークにはWebStormの機能が含まれていました。いくつかの機能はすぐに使用できましたが、プラグインを介して追加できました。 WebStormについて私が興味を持っている主な機能は次のとおりです。 IDEからのJSユニットテスト UI内のJS Lint / Hintカバレッジ DOM / JSリファクタリング/ Intellisense Coffeescriptのサポート SVN / Git統合 FTPとリモート同期(ただし、残りほど重要ではありません) それで、上記を与えられて、Rubymineは上記の機能も提供するでしょうか?多くの重複する機能を備えた2つのIDEを使用するよりも、両方を実行できる1つのIDEを使用する方が望ましいためです。 Webstorm内にのみあり、他のIDEにはない特定の機能はありますか?
27 javascript  ide  ruby 

12
JavaScriptはどのようにして人気を博しましたか?
古代の歴史では、Brendan Eichには言語設計があり、今日の世界ではJavaScriptはさまざまな場所で実装および使用されている人気のある言語です。 言語が人気を博した原因は何ですか?以前のプログラマーに馴染みのあるCのような構文でしたか?Netscapeは、市場の使用を強制するのに十分な市場の支配権を持っていますか?または、JavaScriptが人気で他の言語が人気がないというより深い理由がありますか? 特に、JavaScriptと同じくらい人気のある言語を作成する必要がある場合、人気の成長を再現するにはどのような初期条件が必要ですか?

2
JavaScriptで他の関数への引数として大きな匿名関数を渡すのはなぜそんなに広く受け入れられているのですか?
私が持っている意見、他の関数に引数として数行のコードよりも多く含まれている無名関数を渡すと、私はそれが希望を感じる点まで、大幅に読みやすさと自己のドキュメントに影響を与えることを(私は必ずいくつかによって共有されることになるのです)名前付き関数を宣言するためにコードを使用する可能性が高い人にとってははるかに優れています。または、少なくともメイン関数を宣言する前に、その匿名関数を変数に割り当てます ただし、多くのJavaScriptライブラリ(jQuery、d3.js / NVD3.js)では、いくつかの例を示しただけで、このように大きな関数を使用しています。 これがなぜJavaScriptでこれほど広く受け入れられているのですか?それは文化的なものですか、名前付き関数を宣言するよりも使用する方が好ましいと思われる利点がありますか?

4
どのJavascript関数がブロックと非ブロックを決定するのですか?
数年前からWebベースのJavascript(バニラJS、jQuery、Backboneなど)をやっていて、最近Node.jsでいくつかの仕事をしています。「ノンブロッキング」プログラミングのコツをつかむにはしばらく時間がかかりましたが、今ではIO操作などにコールバックを使用することに慣れています。 Javascriptは本質的にシングルスレッドであることを理解しています。Nodeの「イベントキュー」の概念を理解しています。私が理解できないのは、個々のjavascript操作が「ブロッキング」か「ノンブロッキング」かを決定するものです。後のコードで使用するために出力を同期的に生成するために依存できる操作、および最初の操作が完了した後に出力を処理できるようにコールバックを渡す必要がある操作を確認するにはどうすればよいですか?非同期/非ブロッキングのJavascript関数のリストと、同期/ブロッキングの関数のリストはありますか?Javascriptアプリが1つの巨大な競合状態になるのを妨げているのは何ですか? NodeでのIO操作やWebでのAJAX操作など、時間がかかる操作は非同期である必要があるため、コールバックを使用することを知っていますが、「長時間」と見なされるものを決定しているのは誰ですか?これらの操作には、通常の「イベントキュー」からそれらを削除する何らかのトリガーがありますか?そうでない場合、変数への値の割り当てや配列のループなどの単純な操作と、それらを同期方式で終了することに依存できると思われるものとは何が違うのでしょうか? おそらく、私はこれを正しく考えさえしていないでしょう。ありがとう!

2
コールバックを使用すると、Javascriptコードはどのように非同期になりますか?
非同期のJavaScriptコードの書き方を見つけようとして、私はオンラインで多くの本を読んでいます。私の研究でよく出てきたテクニックの1つは、コールバックを使用することです。コールバック関数を作成して実行する方法のプロセスは理解していますが、コールバックがJavaScriptの実行を自動的に非同期にするのはなぜかと混乱しています。したがって、私の質問は、コールバック関数をJavaScriptコードに追加すると、コードが自動的に非同期になるのですか?

7
自己実行型匿名関数とプロトタイプ
Javascriptには、javascriptでクラス/名前空間を作成および管理するための明確な手法がいくつかあります。 ある技術と他の技術を使用する場合にどのような状況が必要かを知りたいです。私は1つを選んで、それを前進させたいです。 複数のチーム間で保守および共有されるエンタープライズコードを記述しますが、保守可能なjavascriptを記述する際のベストプラクティスを知りたいですか? 私は、自己実行型の匿名関数を好む傾向がありますが、これらの手法に対するコミュニティの投票がどういうものか興味があります。 プロトタイプ: function obj() { } obj.prototype.test = function() { alert('Hello?'); }; var obj2 = new obj(); obj2.test(); 自己閉鎖匿名関数: //Self-Executing Anonymous Function (function( skillet, $, undefined ) { //Private Property var isHot = true; //Public Property skillet.ingredient = "Bacon Strips"; //Public Method skillet.fry = function() { var …


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.