Типичная проблема, возникающая при конкатенации строк, связана с несколькими проблемами:
+
символ перегрузки
- простые ошибки
- программисты ленивы
# 1
Первая и главная проблема использования +
конкатенации и сложения строк заключается в том, что вы используете +
конкатенацию и сложение строк .
если у вас есть переменные a
и b
, и вы установили c = a + b
, есть неоднозначность, зависящая от типов a
и b
. Эта двусмысленность заставляет вас предпринять дополнительные шаги для смягчения проблемы:
Строка Concat:
c = '' + a + b;
Дополнение:
c = parseFloat(a) + parseFloat(b);
Это подводит меня ко второму пункту
# 2
Очень легко случайно привести переменную к строке, не осознавая этого. Также легко забыть, что ваш ввод вводится в виде строки:
a = prompt('Pick a number');
b = prompt('Pick a second number');
alert( a + b );
Будет давать не интуитивные результаты, потому что prompt возвращает строковое значение ввода.
# 3
Необходимость набирать текст parseFloat
или Number()
каждый раз, когда я хочу сделать сложение, утомительна и раздражает. Я считаю себя достаточно умным, чтобы помнить, чтобы не испортить мои динамические типы, но это не значит, что я никогда не испортил свои динамические типы . Правда в том, что мне лень печатать parseFloat
или Number()
каждый раз, когда я делаю сложение, потому что я делаю много сложений.
Решение?
Не все языки используют +
для конкатенации строк. PHP использует .
для объединения строк, что помогает различать, когда вы хотите добавить числа и когда вы хотите объединить строки.
Любой символ может быть использован для объединения строк, но большинство из них уже используются, и лучше избегать дублирования. Если бы у меня был свой путь, я бы, вероятно, использовал _
для объединения строк и запретил бы _
вводить имена переменных.
bad
. Кто такойEveryone
?