の代わり5 + 6に帰りたいようなものをお願いし"56"ます11。
の代わり5 + 6に帰りたいようなものをお願いし"56"ます11。
回答:
"" + 5 + 6文字列に強制的に使用します。これは数値変数でも機能します。
var a = 5;
var b = 6;
console.log("" + a + b);
const numbersAsString = `${5}${6}`;
ES6テンプレートリテラルを使用できるようになりました。
const numbersAsString = `${5}${6}`;
console.log(numbersAsString); // Outputs 56
または、変数がある場合:
const someNumber = 5;
const someOtherNumber = 6;
const numbersAsString = `${someNumber}${someOtherNumber}`;
console.log(numbersAsString); // Outputs 56
個人的には、少し冗長ではありますが、新しい構文はより明確になっています。
簡単な答え:
5 + '' + 6;
使用する
var value = "" + 5 + 6;
強制的に文字列にします。
これは古い投稿で、何度も回答されています。私もJavaScriptにこれを行う関数があるのかと思っていました。私はいくつかの数学プログラミングを行っていて、2つの数値を連結する必要がありました。
つまり、2つの数値17と29を組み合わせる必要がある場合はどうでしょう。確かに、それらを文字列に変換して連結し、新しい文字列を数値に戻すことができます。それはかなりうまくいくようで、コードを続けることができますが、ここを見て、ここで実際に何が起こっているのかを理解してみましょう。
これらの2つの数値に対して私たちは何をしているのですか、17と29を取り、それを1千279に変換するにはどうすればよいでしょうか。さて、17に100を掛けて29を加えることができます。さらに、172と293で172万293を取得するにはどうすればよいでしょうか。172に1000を掛けて293を加えます。しかし、2と9だけはどうですか?2に10を掛けてから9を加えると29になります。
うまくいけば、今ではパターンが明らかになっているはずです。文字列を使用するだけでなく、この計算を行うための数式を考案することができます。aとbの2つの数値を連結するには、aと10の積を長さbの累乗にしてから、bを追加する必要があります。
では、数値bの長さをどのように取得するのでしょうか。そうですね、bを文字列に変換して、そのlengthプロパティを取得できます。
a * Math.pow(10, new String(b).length) + b;
しかし、文字列なしでこれを行うためのより良い方法が必要ですよね?はいあります。
任意の2つの数値aとb、任意の底Bを使用します。aに底Bを長さbの累乗で乗算します(bの対数底を使用し、次にそれをフローリングして最も近い整数を取得し、それに1を加えます)。次にbを追加します。
したがって、コードは次のようになります。
a * Math.pow(10, Math.floor(Math.log10(b)) + 1) + b;
しかし、ちょっと待って、これをベース2またはベース8で実行したい場合はどうなりますか?どうやってやるの?ベース10以外の他のベースで作成した式は使用できません。JavaScriptMathオブジェクトには、ベース10および2(Math.logのみ)の組み込み関数がすでにありますが、どのようにログ関数を取得するのですか?他の拠点?bの対数をbaseの対数で割ります。Math.log(b) / Math.log(base).
これで、2つの数値を連結するための完全に機能する数学ベースのコードができました。
function concatenate(a, b, base) {
return a * Math.pow(base, Math.floor(Math.log(b) / Math.log(base)) + 1) + b;
}
var a = 17, var b = 29;
var concatenatedNumber = concatenate(a, b, 10);
// concatenatedNumber = 1729
ベース10の計算のみを実行することがわかっている場合は、ベースが未定義かどうかのチェックを追加して、ベース= 10に設定できます。
function concatenate(a, b, base) {
if(typeof base == 'undefined') {
base = 10;
}
return a * Math.pow(base, Math.floor(Math.log(b) / Math.log(base)) + 1) + b;
}
var a = 17, b = 29;
var newNumber = concatenate(a, b); // notice I did not use the base argument
// newNumber = 1729
わかりやすくするために、プロトタイプを使用して関数をNumberオブジェクトに追加しました。
Number.prototype.concatenate = function(b, base) {
if(typeof base == 'undefined') {
base = 10;
}
return this * Math.pow(base, Math.floor(Math.log(b) / Math.log(base)) + 1) + b;
};
var a = 17;
var newNumber = a.concatenate(29);
// newNumber = 1729
toString関数を使用して文字列に変換して連結することもできます。
var a = 5;
var b = 6;
var value = a.toString() + b.toString();
enter code here
var a = 9821099923;
var b = 91;
alert ("" + b + a);
// after concating , result is 919821099923 but its is now converted
into string
console.log(Number.isInteger("" + b + a)) // false
you have to do something like below:-
var c= parseInt("" + b + a)
console.log(c); // 919821099923
console.log(Number.isInteger(c)) // true
これはこれを行う簡単な方法です
var value=5+""+6;
このような数値に戻しました。
const timeNow = '' + 12 + 45;
const openTime = parseInt(timeNow, 10);
出力1245
-編集-
ごめんなさい、
私の用途では、これはテスト後にまだ機能しませんでした。不足しているゼロは、10未満の数値で削除されたため、追加し直さなければなりませんでした。コードを特定の時間に実行させるために使用している場合があります。
h = new Date().getHours();
m = new Date().getMinutes();
isOpen: boolean;
timeNow = (this.m < 10) ? '' + this.h + 0 + this.m : '' + this.h + this.m;
openTime = parseInt(this.timeNow);
closed() {
(this.openTime >= 1450 && this.openTime <= 1830) ? this.isOpen = true :
this.isOpen = false;
(this.openTime >= 715 && this.openTime <= 915) ? this.isOpen = true :
this.isOpen = false;
}
投票はよろしくお願いします:)
私はこれに不慣れで、皆さんからなぜここが良かったかについての説明を学ぶためにここに来ました。
とにかく、この投稿がそれを理解するのに役立つので、私のコードを更新して問題をどのように修正したかを示しました。
上記のすべての回答に追加するには、バックグラウンドロジックを共有する必要があります。
Plusは、文字列の連結にも使用される加算演算子です。数字を連結したいとき。数値の連結は私にとって有効なユースケースではないので、文字列を連結したいということを理解する必要があります。
複数の方法で達成できます
型変換を通じて
let a = 5;
a.toString()+5 // Output 55 type "string"
これも機能し、バックグラウンドで型変換を行います。
5 +""+ 5 // Output 55 type "string"
2つの文字列を連結すると決定され、出力のタイプがintである必要がある場合、parseInt()はここで機能します
parseInt(5 +""+ 5) //Output 55 Type "number"