2017-05-22 5 views
0

私は現在、宣言している変数のためにtypeof演算子を使用しています。私がクローム開発者で行ったことは、このように複数の変数を宣言したステートメントを作成することでした。typeof演算子は、1つの変数に対して変更された異なるデータ型を継続的に表示しますか?

var x, y, z; 

次に、このようなステートメントの各変数を割り当てることにしました。もちろん

var x = 7; 
var y = 100; 
var z = x + y; 

これは一度typeof演算子を使用して、各変数を全部そう演算式であり、数を言う文字列を示しています。

今、私はちょうどJavascriptの癖を見せて、これをキャッチしました。

各変数をこのように未定義に変更することにしました。

var x; 

これを実行したとき、私はtypeof演算子を使用することに決めました。何が出てきたのかは、私を捨てたものでした。

typeof (x); 

文字列はまだ数値として返されました。

私の質問は、実際には定義されていないときに、typeof演算子から数値のデータ型を表示し続けている上記の例で特に起こっていることですか?

+0

'typeof'は変数ではなく、値に対して機能します。 – Bergi

+0

'var x = 7'とし、 'var x;'を宣言します。 'x'は未定義でも文字列でもありません。これを行うには、 'x = undefined'を使用します。 – Paulooze

+2

コンソールでこれらの実験を行っていた場合、それらは同じスコープで実行され、 'var x'は新しいものを作成する代わりに変数を再宣言します。それは価値を保ちました - それを記録しようとします。 – Bergi

答えて

1
var x=7; 
var x; 

これは、変数を再宣言しません。変数を実際に再宣言することはできません。 あなたはundefinedにあなたの変数を変更したい場合は、それを行う:最高(ウィンドウ)の範囲で動作しないこと、しかし

var context={x:6}; 
delete context.x; 
alert(typeof context.x); 

var x=6; 
x=undefined; 
alert(typeof x); 

それともあなたはそれを削除したい場合がありますが。

0

あなたの例では、

このように各変数をundefinedに変更することにしました。それは本当にまったく何もしていないの最も実用的な目的のために

var x; 

しかし、これは実際には、未定義にxを設定されていません。

xは、以前に割り当てた値(7)になります。

あなたは(x = undefined)undefinedにxを設定した場合、typeof演算は正しく、それは新しいタイプ(typeof x = "undefined")ですが反映されます。

0

変数は1回だけ作成されるため、次の変数は再利用されます。

var x = 1; 
... 
x = 2; 
... 
x = undefined; 

同じ変数を2回作成すると、コンピュータはデータを持つ変数を読み取ります。

var x = 1; 
var x = 2;//this 
... 
var y = 1;//this 
var y; 
関連する問題