ブラウザのコンソールで、var x=10
と入力するとundefined
と表示され、x=10
と入力すると10
と表示されます。両方とも同じタスクを実行し、その違いは何ですか? varを使用していてvarを使用していないことに違いはありませんか?ブラウザコンソールで入力したときのvar x = 10とx = 10の違いは何ですか?
答えて
対eval
var output = eval('x = 10');
console.log(output) // 10
を使用する場合は、ブラウザのコンソールにあるので、あなたは、グローバルスコープでaleradyある少し良く何が起こっているのかを見ることができます変数の有無にかかわらず、変数の格納方法に違いはありません。
しかし、=
はリターン sのあなたが割り当てられた値演算子であり、そうa = 1
は1と評価され、あなたがb = 2
を入力したときに2
を参照してください。 var
何も返さない、それは式ではない文です。ブラウザENVで
おそらくいくつかの参照:[*割り当てランタイムセマンティクス*](http://www.ecma-international.org/ecma-262/6.0/#sec-assignment-operators-runtime-semantics-evaluation ) - 代入式は右手の値を返します。 [*変数宣言ランタイムセマンティクス*](http:// www。ecma-international.org/ecma-262/6.0/#sec-variable-statement-runtime-semantics-evaluation)-成功した場合は、* undefined *を返します。 – RobG
var x = 10;現在のスコープの値を設定します(関数の中の例として)。
x = 10;グローバルスコープの値を設定するので、どこにでもアクセスできます。
ブラウザのコンソール –
私は知っていますが、それは問題ではありません。また、コンソール内の関数を変数で入力することもできます。この場合、ブラウザコンソールスコープはグローバルスコープと同じであるため、問題はありません。 – seahorsepip
あなたは質問のポイントを見逃しました。 OPは、コンソールがなぜ1つのケースでは "undefined"で、もう1つのケースでは "10"で応答するのかを尋ねています。 – nnnnnn
varが関数または他の非グローバルスコープ内で使用されている場合、その変数はグローバル変数ではありません。 varが変数名の前に使用されていない場合、グローバル変数が作成されます。
/
/ These are both globals
var foo = 1;
bar = 2;
function()
{
var foo = 1; // Local
bar = 2; // Global
// Execute an anonymous function
(function()
{
var wibble = 1; // Local
foo = 2; // Inherits from scope above (creating a closure)
moo = 3; // Global
}())
}
あなたは割り当てを行っていない場合、あなたはVARを使用する必要があります。
var x; // Declare x
EXPLANATION
場合x = 10
:
これは、変数を作成します値012を持つx
という名前のグローバルスコープ。 さらに、これは値10
を返す式です。これはちょうどそう であることを起こる現在のスコープ内の変数を作成します
:値10
場合var x = 10
にx
とy
の両方を設定しますvar x = y = 10;
のようなことを行うことができるようにするために、これは便利ですグローバルスコープはx
で、値は10
です。 構文var
で作成されているため、式として評価できないため、undefined
がコンソールに出力されます。
概要
他の場所に存在しますが、コンソールからvar x = 10
対x = 10
を書くの効果に違いはありません。後者は、厳密モードでも許可されていません。ただし、実行すると出力がないため、undefined
が返されますが、x=10
が式であるため、2番目の出力は10
を返します。
例
あなたは
var output = eval('var x = 10');
console.log(output) // undefined
// they both define var x and set it value to 10,but they are diff about below
// x is globally
x = 10
// x is scopely
var x = 10
は、世界的に平均VaRは、それが変数をグローバルに定義引き起こす可能性がありますオブジェクトwindow
のプロパティ
として定義しかし、最初のコードの使用について注意が必要です。 strict mode
、で
そして、それならばが暗黙的にグローバルが許可されていない定義されたので、これは、に動作しません。
OPは、2つのバージョンが何をするのか、そして範囲について理解しています。問題は、なぜそれらの行がコンソールに入力されたのか*コンソールが異なる応答を出す理由です。 – nnnnnn
シナリオ1:10には、ブラウザのコンソールによって返されるint型の値であるため、
は、ブラウザのコンソール上のx = 10を入力しているときに10を取得している基本的に参照してください。
シナリオ2: ブラウザコンソールでvar x = 10と入力すると、各コマンドの戻り値が表示され、このシナリオでは何も返されないため「未定義」になります。ここではより多くのリファレンス訪問のため
、さらに:- 1. (function(x:<_))= xと(function(x:_))= xの違いは何ですか?
- 2. TinybrowserはChrome 17.xとFF 10.xで動作していません
- 3. pythonでmap(func、list)と[func(x)in listのxの違いは何ですか]
- 4. ttf2eot - Mac OS Xの入力パスとは何ですか?
- 5. なぜ[x | x < - [1..10]]メソッドがHaskellで遅いのですか?
- 6. C++のint x = 1とint x(1)の違いは何ですか?
- 7. Pythonの場合、x == 1またはx == 5またはx == 10の場合、aを書くいくつかの他の方法は何ですか?
- 8. x = function(a、b、c){}と関数x(a、b、c){}の違いは何ですか?
- 9. "x IS NULL"と "NOT(x IS NOT NULL)"の違いは何ですか?
- 10. int [] xの違いは何ですか? int x [];?
- 11. perl -dのxとpの違いは何ですか?
- 12. WindowsとOS XのOpenGLアルファブレンドの違いは何ですか?
- 13. JVMの - 、 - X paramsと-XX paramsの違いは何ですか?
- 14. OpenGL 3.xと4.Xの違いは?
- 15. Java:フォーマット指定子%xと%hの違いは何ですか?
- 16. @ Html.ValueFor(x => x.PropertyName)と@ Model.PropertyNameの違いは何ですか?
- 17. フォームヘルパーXフォームビルダ。違いは何ですか?
- 18. def func(var)とdef func =(var)の違いは何ですか?
- 19. "X x(42)"と "X x = 42"を使用したオブジェクト構成の違い?
- 20. var {u、v、w} = xとは何ですか; Javascriptの意味ですか?
- 21. テンプレート10テンプレートの違いは何ですか?
- 22. if(x){foo();の違い}とx? foo():0;
- 23. x86マシンで `x`を減算し、` -x`を追加することの違いは何ですか?
- 24. JS構文とは何ですか?表現の代入? (x!= null &&(y = x))
- 25. Xへの参加を選択すると、YとXをXに結合するよりも10倍高速です - これはなぜですか?
- 26. -xとx * -1.0fの間に違いはありますか?
- 27. C#でbase-27(またはbase-X)をbase-10に変換しますか?
- 28. なぜ{10 + '1}} + 10が10に等しいのですか?
- 29. IIS 7.xのコンテキストでWebアプリケーションと仮想フォルダの違いは何ですか?
- 30. `logBase 10 x`は特殊化されているのになぜ` log x/log 10`よりも遅いのですか?
何も... 'のx = 10 'ので10は、コンソール...あなたが言うとき、' VAR xに印刷された値を返します= 10 'の場合、値は返されないので、 'undefined'が表示されます –