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) о назначении внутри условияв условных выражениях может привести к путанице и потенциальным ошибкам. Это связано с тем, что оператор назначения (=) может быть легко принят за оператор равенства (==). В результате условие, которое должно было быть сравнением, может случайно стать назначением, что приводит к неожиданному поведению в коде. Кроме того, назначения в условиях могут затруднить чтение и понимание кода, особенно для менее опытных программистов.
, чтобы избежать назначений в условных выражениях, вы можете разделить назначение и условия проверки на две отдельные строки кода. Например, вместо написания if (x = getValue ()) вы можете написать x = getValue (); if (x). Это делает код более ясным и снижает риск путаницы или ошибок.
, в то время как, как правило, обескуражены, существуют ситуации, когда назначения в условиях могут быть полезными. Например, в цикле, где значение необходимо обновлять и проверять в каждой итерации, назначение в условиях может сделать код более кратким. Однако это должно быть сделано с осторожностью, и код должен быть четко прокомментирован, чтобы избежать путаницы.
Оператор назначения (=) используется для назначения значения переменной. Например, x = 5 присваивает значение 5 переменной x. С другой стороны, оператор равенства (==) используется для сравнения двух значений. Например, if (x == 5) проверяет, равно ли значение x 5.
Каковы некоторые общие ошибки, вызванные назначениями в условиях? Например, если (x = 5) всегда будет правдой, потому что он назначает от 5 до x, а не проверять, является ли x равным 5. Это может привести к неожиданному поведению в коде. Один из подходов заключается в тщательном проверке всех условных утверждений, чтобы убедиться, что они используют правильные операторы. Использование Linter или инструмента анализа статического кода также может помочь поймать эти проблемы.
не все языки программирования разрешают назначения в условиях. Например, Python не разрешает назначения в условиях и даст синтаксисную ошибку, если вы попытаетесь сделать это. Всегда проверяйте синтаксические правила языка программирования, который вы используете.
Да, есть альтернативы назначениям в условиях. Одна общая альтернатива - использовать временную переменную для сохранения значения, которое необходимо назначить и проверить. Это может сделать код более ясным и проще для понимания. Другая альтернатива - использовать функцию, которая возвращает значение, а затем проверить это значение в условии.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3