問題タブ [language-features]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - JavaScript に「null」値があるのはなぜですか?
JavaScript には、基本的に「存在しない」という 2 つの値があります -undefined
とnull
.
プログラマーが何も割り当てていないundefined
プロパティは になりますが、プロパティが になるnull
にnull
は、明示的に割り当てられる必要があります。
プリミティブな値であり、オブジェクトであるため、 null
becauseの必要性があると考えたことがあります。実際には、どちらもプリミティブ値です。つまり、どちらも空のオブジェクトに変換されるため、コンストラクター関数から返すことも返すこともできません (コンストラクターで失敗を宣言するにはエラーをスローする必要があります)。undefined
null
typeof null
'object'
undefined
null
また、どちらもfalse
ブール値のコンテキストで評価されます。私が考えることができる唯一の本当の違いは、一方が に評価されNaN
、もう一方0
が数値コンテキストで評価されることです。
では、なぜ両方が存在し、プロパティが設定されているかどうかを調べようとするときにundefined
誤っnull
てチェックしているプログラマーを混乱させるだけなのでしょうか?null
私が知りたいのは、代わりにnull
使用して表現できなかったものを使用する必要がある合理的な例を誰かが持っているかどうかです。undefined
したがって、一般的なコンセンサスは、undefined
「そのようなプロパティは存在しない」ことをnull
意味し、「プロパティは存在しますが、値を保持しない」ことを意味するようです。
JavaScript 実装が実際にこの動作を強制する場合、私はそれundefined
を受け入れることができますが、完全に有効なプリミティブ値であるため、既存のプロパティに簡単に割り当ててこの契約を破ることができます。したがって、プロパティが存在するかどうかを確認したい場合は、in
演算子を使用する必要がありhasOwnProperty()
ます。undefined
繰り返しになりますが、との個別の値の実用的な用途は何null
ですか?
私は実際にはundefined
、もう使用していないが、したくないプロパティの値を設定解除したいときに使用しますdelete
。null
代わりに使うべきですか?
c# - Visual Studio C#プラグマ名のリストを持っている人はいますか?
C ++では、ビルドログに出力する#pragmaがありました。Visual Studio 2005 C#用に1つ存在しますか?そして、すべての#pragma名の実際のリストがどこにあるか知っている人はいますか?
r - R はコンパイル済み言語ですか?
Web 上のどこにも見つかりません (そして、インストールしたくありません)。R 言語はコンパイル済み言語ですか? 事前に作成されたスクリプトの実行速度は? なんらかのコンパイルを行いますか、それとも命令を 1 行ずつ実行しますか?
php - 良いまたは悪い?「関数チェーン」機能を PHP に導入
そこで、組み込みのグローバル関数を使用して PHP にメソッド チェーンを導入する方法の 1 つは、F# から |> (パイプ) 演算子を「借りる」ことだと考えていました。左側の結果を右側の関数の最初のパラメーターにパイプします。もちろん、PHP はいくつかの関数のパラメーターの順序を再検討する必要があります。
これにより、次のように記述できます。
このような:
c# - constness が Java と C# から削除されたのはなぜですか?
これが何度も議論されてきたことは知っていますが、なぜJava と C# の設計者がこれらの言語からこの機能を除外することを選択したのか、私にはよくわかりません。どのように回避策を講じるか (インターフェイス、クローン作成、またはその他の代替手段を使用) には興味がありませんが、決定の背後にある理論的根拠に興味があります。
言語設計の観点から、この機能が拒否されたのはなぜですか?
PS: C# は加算 (減算ではなく) アプローチで設計されているため、「省略」などの言葉を使用しています。ただし、これらの言語が設計される前に C++ に機能が存在していたため、このような言葉を使用しているため、プログラマーのツールボックスから削除されたという意味で省略されています。
python - is there an alternative way of calling next on python generators?
I have a generator and I would like to know if I can use it without having to worry about StopIteration , and I would like to use it without the for item in generator
. I would like to use it with a while statement for example ( or other constructs ). How could I do that ?
java - 正しいメソッドを持っている以上のものがインターフェイスにありますか?
だから私はこのインターフェースを持っているとしましょう:
そして、それを実装するクラスがあります:
インターフェイス IBox を使用したい場合、実際にはそのインスタンスを作成できません。
右?だから私は実際にこれをしなければならないでしょう:
それが本当なら、インターフェースの唯一の目的は、インターフェースを実装するクラスが、インターフェースによって記述された正しいメソッドを持っていることを確認することですか? または、インターフェースの他の用途はありますか?
thread-safety - オブジェクトを使用するにはロックする必要がありますか?
私は言語機能について熟考していて、次の機能がどの言語にも実装されているかどうか疑問に思っていました。
Mutex 内でのみオブジェクトにアクセスできることを宣言する方法。たとえばJavaでは、オブジェクトが同期ノイズブロックにあり、C#ではロックされている場合にのみ、オブジェクトにアクセスできます。
オブジェクトが Mutex ブロックの外で使用された場合、コンパイラ エラーが発生します。
何かご意見は?
アップデート
一部の人々は質問を誤解していると思います。オブジェクトをロックできるかどうかを尋ねているのではなく、ロック/同期ステートメント内からのみアクセスできることをオブジェクトの宣言時に述べるメカニズムがあるかどうかを尋ねています。
sql - 間違った一括削除と更新 -- 設計エラー?
SQL の設計者が、 Where句を持たないUpdateまたはDeleteステートメントにキーワード (たとえば " All ") を必要としなかったのはなぜですか? それは彼らの側の単なる見落としでしたか?彼らがそうしていたら、彼らは(仕事は言うまでもなく!)多くの悲しみを救ったでしょう!
c# - C# で ??= を実行できないのはなぜですか?
私はしばしば自分がやっていることに気づきます:
できない理由:
編集:それが言語の一部ではないことは知っています...私の質問は「なぜですか」ですか?「foo」を繰り返す必要性は、不快であり、エラーが発生しやすい可能性があると思います。それは次のように醜く見えます: