Сделайте код javascript более эффективным, чтобы не создавать больше строк - PullRequest
0 голосов
/ 06 мая 2020

У меня это в JS ... Что лучше для повышения эффективности кода?

var hello = parseInt(document.getElementById("hello").value);
var hello2 = hello * 0.02;
var hello1 = parseFloat(hello2);
var hello3 = Math.round(hello1 * 100) / 100;
if (hello3 > 3.11) {
  hello3 = 2.11;
}

Ответы [ 3 ]

0 голосов
/ 06 мая 2020

var hello1= parseFloat(hello2); не требуется, потому что hello2 уже является числом с плавающей запятой.

Неясно, какая из переменных вам нужна в конце расчета, но если предположить, что это просто hello3, тогда:

hello3 = ( ( ( hello3 = Math.round( parseInt(document.getElementById("hello").value) * 0.02 ) / 100 ) > 3.11 ) ? 2.11 : hello3 )

Это действительно трудно читать, поэтому я бы отформатировал его так:

hello3 = (
    ( ( hello3 = Math.round( parseInt(document.getElementById("hello").value) * 0.02 ) / 100 ) > 3.11 )
        ?
    2.11
        :
    hello3
)
0 голосов
/ 06 мая 2020

Вы можете сохранить все только в одной переменной (без нарушения отступов). Я думаю, вам не нужны инициализации всех этих переменных, но для меня это слишком много.

var hello1 = parseFloat(document.getElementById("hello").value) * 0.02;
hello1 = Math.round(hello1 * 100) / 100;
if (hello1 > 3.11) {
  hello1 = 2.11;
}

Рабочий пример: https://stackblitz.com/edit/js-code-efficiency?file=index.js

0 голосов
/ 06 мая 2020

Сделайте javascript код более эффективным

Единственное, что, как я могу себе представить, вы просите повысить эффективность, - это добиться того же с меньшим количеством переменных.

В этом коде используется только один, hello3:

var hello3 = Math.round(parseFloat(parseInt(document.getElementById("hello").value)*0.02)*100)/100;

if (hello3 > 3.11) {
  hello3 = 2.11;
}

избегайте создания дополнительных строк

Я не уверен, что именно вы имеете в виду. Теоретически все может быть в одной строке, и код все равно будет работать:

var hello3 = Math.round(parseFloat(parseInt(document.getElementById("hello").value)*0.02)*100)/100; if (hello3 > 3.11) {hello3 = 2.11;}

Но я не вижу смысла в этом.

...