Я использую vuejs, и у меня есть выражение, в котором я хочу проверить, происходит ли имя от FilterName или FilterName2, используя только выражение. Я не хочу использовать вычисляемое свойство. Есть ли способ написать это просто выражением
new Vue({
el: "#app",
data: {
FilteredName:""
FilteredName2:"XX_110_OY_M10"
},
methods: {
toggle: function(todo){
todo.done = !todo.done
}
}
})
<script src = "https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id = "app">
<p>
{{FilteredName || FilteredName2 + "_" + "_DEVELOPMENT" }}
</p>
</div>
Если любой из них гарантированно равен нулю, я бы использовал нулевой оператор объединения.
(FilteredName ?? FilteredName2) + "_" + "_DEVELOPMENT"
Если один из них гарантированно будет null
, undefined
, 0
или пустой строкой (""
), то оператор ||
будет работать точно так же, как оператор объединения Nullish в вашем случае.
В вашем случае лучше использовать оператор OR ||
, так как он работает так же (для этого случая) и имеет лучшая поддержка, чем нулевое объединение, поскольку последний выпущен в 2020 году, поэтому старые браузеры его не поддерживают.
Вам просто нужно использовать его со скобками для ясности:
{{ (FilteredName || FilteredName2) + "_" + "_DEVELOPMENT" }}
Важное различие между ними заключается в том, что:
||
returns the first truthy value.
??
returns the first defined value.
Прочитайте больше:https://javascript.info/nullish-coalescing-оператор