12 ответов:
использовать
"" + 5 + 6чтобы заставить его строк. Это работает и с числовыми переменными:var a = 5; var b = 6; console.log("" + a + b);
вы также можете использовать
toStringфункция для преобразования его в строку и конкатенации.var a = 5; var b = 6; var value = a.toString() + b.toString();
теперь вы можете использовать ES6 шаблон литералы.
const value = ``;или, если у вас есть переменные:
const value = `${someInt}${someOtherInt}`;лично я нахожу новый синтаксис гораздо более ясным, хотя и немного более подробным.
Я знаю, что это старый пост и был дан ответ много раз. Мне тоже было интересно, есть ли у JavaScript функция, которая это сделает. Я занимался математическим программированием и должен был объединить два числа.
так что если мне нужно объединить два числа 17 и 29. Конечно, я могу превратить их в строки и объединить их, а затем превратить новую строку обратно в число. Это, кажется, работает довольно хорошо, и я могу продолжить свой код, но давайте посмотрим здесь и попробуем выяснить что на самом деле здесь происходит.
так что, надеюсь, теперь картина должна быть очевидна для вас. Мы можем разработайте математическую формулу, чтобы сделать этот расчет для нас, а не просто использовать строки. Чтобы объединить любые два числа, a и b, нам нужно взять произведение a и 10 в степень длины b, а затем добавить b.
Итак, как мы получаем длину числа b? Ну, мы могли бы превратить b в строку и получить ее свойство length.
a * Math.pow(10, new String(b).length) + b;но должен быть лучший способ сделать это без строк, верно? Да там есть.
для любых двух чисел, a и b, с любым основанием B. Мы будем умножать a на основание B в степени длины b (используя логарифмическую базу b, затем настилая ее, чтобы получить ближайшее целое число, а затем добавляя к нему 1) , а затем добавляя b.
Итак, теперь наш код выглядит так:
a * Math.pow(10, Math.floor(Math.log10(b)) + 1) + b;но подождите, что если бы я хотел сделать это в базе 2 или базе 8? Как я могу это сделать? Мы не можем использовать нашу формулу, которую мы только что создали с любым другим базы, но база 10. Объект JavaScript Math уже имеет встроенные функции для базы 10 и 2 (просто математика.log), но как мы получаем функции журнала для любой другой базы? Мы разделим отчет в журнале из базы.
Math.log(b) / Math.log(base).Итак, теперь у нас есть наш полностью функционирующий математический код для объединения двух чисел:
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если бы вы знали, что будете делать только математику base 10, вы можете добавить проверку для base is undefined, а затем установить base = 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 = 1729To чтобы мне было проще, я использовал прототип, чтобы добавить функцию к объекту 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
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

Comments