2015-01-19 2 views
0

sВнутренние дебаты на работе над лучшей практикой, я надеюсь, что некоторые опытные люди могут прослушивать «ПОЧЕМУ», а не просто «вы должны ...».переменные литья во время использования или во время объявления

Существует функциональное различие между литой переменной (a) только при ее инициализации или (b) при ее инициализации и каждый раз, когда вы ее использовали.

А.

var a = 1; 
var b = 1; 
... potential other code ... 
var c = a + b; 

var msg = ''; 
... potential other code ... 
echo msg; 

против

B.

var a = 1; 
var b = 1; 
... potential other code ... 
var c = int(a) + int(b); 

var msg = ''; 
... potential other code ... 
echo trim(msg); 

КОЛЛЕГА не любит все 'дополнительные' функции вызовов загромождать свой код, и он утверждает, есть накладные расходы, которые не нужны - если только вы не имеете дело с пользовательским вводом, и даже тогда вам нужно только «бросить» или работать один раз, когда вы вводите пользовательский ввод в var.

Я занимаю противоположную позицию, желая «бросать» каждый раз, когда я использую переменную, особенно перед тем, как она попадает в хранилище данных, но я стал сторонником даже этого типа операций, когда я показываю или с помощью var в любом случае. Единственный раз, когда я укусил меня, - это делать длинную математику с плавающей запятой (в зависимости от того, как действует актерский состав).

Я предполагаю, что мой, хотя я ожидаю, что числовое значение или; в приведенном выше примере - целое число. Это отличное от инициализации работает отлично, но прежде чем я буду использовать переменную в любой точке, я хочу использовать тип, который я ожидаю. Так что бросание во время использования кажется разумным. Это особенно верно в свободно типизированных языках.

Могу ли я получить некоторые мысли по этому поводу? спасибо

+2

Что такое 'int()'? Почему бы вам просто «+ a» и «+ b»? Учитывая, что 'a' и' b' уже являются целыми числами, почему вы чувствуете необходимость в дополнительном анализе? Кроме того, 'echo' - это PHP, а не JavaScript. Возможно, именно здесь и происходит' int() '? –

ответ

0

Нет никакого смысла делать это. Если это int, то это int, пока оно не изменится.

Да, вы всегда должны проверять информацию, поступающую от пользователя. Но нет никакой реальной необходимости загромождать ваш код и делать работу на нем настолько неудобной. Для работы с этим кодом было бы просто адским. А также вы добавляете некоторую нагрузку на интерпретатор браузера, делая скрипты более крупными и работающими медленнее.

+0

Его Javascript, а не PHP. (Хотя ответ остается таким же для обоих) – SuperSaiyan

+0

@Thrustmaster, спасибо, отредактирован –

Смежные вопросы