2016-05-18 13 views
0

実行時にJavaScriptのインタプリタが変数のデータ型を知っていることを知りたい。 Javaや他の言語の場合、データ型を宣言するのに使用しますが、javascriptでは単に "var"として宣言します。JavaScriptのインタプリタが変数のデータ型を理解する方法は?

var number1 = 2; 
var number2 = 3; 

var number3 = number1+number2; 

console.log(number3); 

出力は5です。なぜ23ではない?

ありがとうございました。

答えて

0

2と3は数字なので、変数をvarで宣言することは、「型を取り除く」ことを意味するのではなく、「型を文字列に設定する」という意味ではありません。 number1に数値を割り当て、number2に数値を割り当てました。 JSインタープリターは、これらを一緒に追加することで、2つの数字を一緒に追加することがわかります。

1

いずれも文字列ではないためです。

変数のタイプは、その変数の内部表現に関連付けられています。

ソース解析時に、変数は言語文法に従ってレキシングされます。引用符ではなく、文字列ではないので、数字です。両方が数字なので、結果は数字です。

1

""を使用して文字列にしなかったため、変数は数値として解釈されます。

var number1 = 2; 
var number2 = 3; 

var number1_ = "2"; 
var number2_ = "3"; 

var number3 = number1+number2; 
var number3_ = number1_+number2_; 

console.log(number3); // 5 
console.log(number3_); // 23 
0

それはnumberタイプだから:

typeof 4 
--> "number" 

typeof '4' 
--> "string" 
0

JavaScriptの変数は、データ値を格納するためのコンテナです。

var x = 2 ; 
var y = 3 
console.log(typeof x) // number 
console.log(typeof y) // number 

console.log(x+y) // 5 
:あなたはそれを文字列として

var x = '2' ; 
var y = '3' 
console.log(typeof x) // string 
console.log(typeof y) // string 

console.log(x+y) // '23' 

を考慮し、今それぞれに番号を割り当てる文字列を割り当てた場合、それはインタプリタ数他 としてそれを知っていた容器に番号を割り当てる

0

javascriptインタプリタがどのように変数のデータ型を知っているかという質問に直接答えたいと思います。

javascriptについて知る必要があることは、JSの変数が型を保持していないということです。 JSでは、その型を保持する値です。値の型は変更できません。しかし、それは強制的にになることができます。

したがって、変数の値が本質的に数値5であっても、変数そのものが型を保持しないため、変数の型を明示的に変更しなくても暗黙の強制によって新しい文字列 "5"が作成されますで始まる。

それがその文字列に変数の変更はありませんが、むしろ新しい文字列値を作成し、あなたがそれを使用している表現の文脈に応じて、変数のために使用されます。

javascriptの強制を見上げて詳細はをご覧ください。

関連する問題