2012-01-23 7 views
2
var s= new Date().getHours();  // 20 
var m= new Date().getMinutes();  // 38 
document.write(s,m);    // returns 2038 

var time = s,m; 
document.write(time);    // returns only 20 

var time = s+m; 
document.write(time);    // returns 58 

s変数とm変数を使用して2038を返すtime変数を宣言するにはどうすればよいですか?javascriptで2つの変数を結合する

+0

使用しないでください。document.write() ' – Mohsen

答えて

1

1つを文字列にキャストします。

var time = ''+s+m; 
document.write(time); 
+0

ありがとうございます。 – user1165761

1

jsが最初に文字列を認識していることを確認する必要があります。

var time = "" + s + m; 
0

答えが返ってくると、JavaScriptはこのようなコードを見るといくつかのルールが適用されます。

document.write(s,m)は単にそれぞれの値を出力している。この場合

var s= new Date().getHours();  // 20 
var m= new Date().getMinutes();  // 38 
document.write(s,m);    // returns 2038 

次の2つの変数(コンマで区切られた)、timemと呼ばれるものと呼ばれるものを宣言され、そして可変sに含まれる値でありますtimeに割り当てられています。 JavaScriptのスコープルールを使用すると、たとえば次のように宣言できます。できるだけ頻繁にあなたが機能で好きで、それは常に同じ変数mを参照するようvar m

var time = s,m; 
document.write(time);    // returns only 20 

JavaScriptが加算と連結の両方に+を使用し、最初の変数の型と一致するように、変数を強制しようとします追加または連結を実行するかどうかを決定するために使用されます。それは2つの値を加算を実行しようとしますので、この場合sは数ある:

var time = s+m; 
document.write(time);    // returns 58 

このため、正しいJavaScriptのイディオムは、式の先頭に空の文字列を置くことであるとJavaScriptを強要しようとしますそのタイプの後続の変数:

var time = '' + s + m; 
document.write(time); // returns 2038 
関連する問題