私はいくつかのコードでその行を見ました
window.a = window.b = a;
それはどのように機能しますか?
次は常にtrueを返しますか?
window.a == a
私はいくつかのコードでその行を見ました
window.a = window.b = a;
それはどのように機能しますか?
次は常にtrueを返しますか?
window.a == a
その意味は
window.b=a;
window.a=a;
またはあなたは言うことができます。
window.b=a;
window.a=window.b;
1つのステートメントで2つの割り当て
と
後もう一つ
window.a ==そうですか?
はい、これは正しいです。trueを返します
この割り当ては右から左に実行されるため、最初に「window.b」に「a」値が割り当てられ、次に「window.a」に「windows.b」値が割り当てられます。
このようにこの複数の割り当てを解除して、同じ結果を得ることができます。
window.b=a;
window.a=a;
また、スコーピングのようなものにも注意する必要があります。このコードをグローバルスコープで実行する場合、たとえば次のような単純なスクリプト:
<script>
var a = 10;
window.a = window.b = a;
</script>
'a'と'window.a'は同じ変数であるため、window.a==aはtrueです。「a」は実際には「window」オブジェクトのプロパティです。すべてのグローバル変数は、「ウィンドウ」オブジェクトのプロパティです。あなたがこのようなコードを書くことができることを知っていると、このコードは対応します:
<script>
var a = 10;
a = b = a;
</script>
ただし、このコードを関数に入れると、関数スコープで実行されます。例:
<script>
function ex() {
var a = 10; // this is local variable
window.a = window.b = a; // this time window.a != a
}
</script>
と同じ:
window.b = a;
window.a = a;
そして、いいえ、そして常に等しいとは限りませんwindow.a
。a
通常、これはWebブラウザーのJavaScriptインタープリターのグローバルスコープでのみ等しくなります。
ウィンドウのプロパティa
とb
プロパティは、の値に割り当てられていますa
。はい、このコードがグローバルスコープで実行され、同じa
でwindow.a
ある場合。
var a = "foo";
//window.a and a are the same variable
window.a = "bar";
a; //bar
function f(){
var a = "notfoo";
//window.a is a different variable from a, although they may take the same value
window.a = "baz";
a; //notfoo
}
それは同じです:
window.b=a;
window.a= window.b;
この場合、上記のステートメントの後、window.a==aが真になります。たとえば、aがグローバル変数の場合、falseになる場合があります。
そしてもう1つ、次回の質問について、より有益なタイトルを見つけてください。
実際には、値がのwindow.a==a
場合はfalseになる可能性があります。それは、それ自体を含め、どの値とも等しくないためです。a
Number.NaN
Number.NaN