«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Операции назначения в условных заявлениях

Операции назначения в условных заявлениях

Опубликовано в 2025-05-02
Просматривать:260

Операции назначения в условных заявлениях

Это очень распространено в PHP ] Чтобы увидеть код, написанный так:
if($summary = get_post_summary())
{
    return $summary;
}
] Я имею в виду назначение в условиях. Достаточно хитро, это можно сделать и в JavaScript, хотя это гораздо реже:
if(summary = document.getElementById("post-summary"))
{
    return summary.innerHTML;
}
] На первый взгляд вы будете прощены за то, что думали, что это опечатка! Действительно, некоторые отладчики отмечают это с предупреждением, спрашивая, имели ли вы тест на равенство (==) и заставят его как назначение (=). Но это не ошибка - ключ к пониманию, чтобы понять две вещи :: Во -первых, назначение возвращает значение (назначенное вами значение). Во -вторых, и самое главное, значение, которое оно возвращает, оценивается на истину или ложь, и в конечном итоге определяет, проходит ли условие. Теперь, в мире DOM либо существуют, либо они нулевы - и нулевые необходимы для оценки ложности Полем Таким образом, в примере кода, выше, условие будет оцениваться до true, если существует элемент «#после-подугольного» или ложь, если оно этого не делает. В равной степени вы можете использовать тот же трюк, чтобы перевести неизвестную иерархию, проходя через последовательных родителей, используя while (). Этот пример создает массив каждого имени узла между целью события и #Document: var names = [], node = e? E.Target: Event.srcelement; делать { names.push (node.nodename); } while (node ​​= node.parentnode)
var names = [], node = e ? e.target : event.srcElement;
do
{
    names.push(node.nodeName);
}
while(node = node.parentNode)
совсем не Intuitive. Например, как положительные, так и отрицательные числа оценивают true, кроме Zero и NAN . И странно, объект Создан с помощью логического конструктора всегда оценивается на TRUE, даже если он был создан как новый логический (false)! Так что будьте осторожны! Синтаксис, подобный этому, не для обмороженного; Это также не должно использоваться кавалером, с чрезмерной зависимостью от преобразования типа и литьем произвольных значений. Но используется хорошо в подходящих обстоятельствах, он может упростить многие условия для производства более быстрого и более скудного кода.

миниатюрная кредит: sbwoodside ]

часто задаваемые вопросы (FAQS) о назначении внутри условия

]

Что такое назначение внутри условия в программировании? Это обычная практика во многих языках программирования, включая JavaScript, C и Python. Это позволяет получить более краткий код в качестве назначения, а проверка состояния может быть сделана в одной строке. Тем не менее, это также может привести к путанице и потенциальным ошибкам, если не используется тщательно, так как операция назначения может быть принята за операцию сравнения.

Почему плохой практика выполнять назначения в условных выражениях?

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

Как я могу избежать назначений в условных выражениях?

, чтобы избежать назначений в условных выражениях, вы можете разделить назначение и условия проверки на две отдельные строки кода. Например, вместо написания if (x = getValue ()) вы можете написать x = getValue (); if (x). Это делает код более ясным и снижает риск путаницы или ошибок.

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

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

, какова разница между оператором назначения и оператором равенства?

Оператор назначения (=) используется для назначения значения переменной. Например, x = 5 присваивает значение 5 переменной x. С другой стороны, оператор равенства (==) используется для сравнения двух значений. Например, if (x == 5) проверяет, равно ли значение x 5.

Как типовые задания обрабатывает назначения в условиях? Тем не менее, TypeScript имеет более строгую проверку типа, которая может помочь поймать потенциальные ошибки, вызванные назначениями в условиях. Например, если вы попытаетесь назначить строку переменной, которая должна быть числом внутри условия, TypeScript даст ошибку во время компиляции.

Каковы некоторые общие ошибки, вызванные назначениями в условиях? Например, если (x = 5) всегда будет правдой, потому что он назначает от 5 до x, а не проверять, является ли x равным 5. Это может привести к неожиданному поведению в коде. Один из подходов заключается в тщательном проверке всех условных утверждений, чтобы убедиться, что они используют правильные операторы. Использование Linter или инструмента анализа статического кода также может помочь поймать эти проблемы.

может использоваться в условиях во всех языках программирования?

не все языки программирования разрешают назначения в условиях. Например, Python не разрешает назначения в условиях и даст синтаксисную ошибку, если вы попытаетесь сделать это. Всегда проверяйте синтаксические правила языка программирования, который вы используете.

есть ли какие -либо альтернативы назначениям в условиях?

Да, есть альтернативы назначениям в условиях. Одна общая альтернатива - использовать временную переменную для сохранения значения, которое необходимо назначить и проверить. Это может сделать код более ясным и проще для понимания. Другая альтернатива - использовать функцию, которая возвращает значение, а затем проверить это значение в условии.

]

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3