Dies ist Teil meiner Serie über die Grundlagen. Es sind nicht die aufregendsten Beiträge. Aber es ist wichtig, diese Grundlagen zu kennen, um zu verstehen, warum JS die Dinge tut, die es tut. Es wird Ihnen helfen, besser zu debuggen, weil Sie wissen, warum Dinge nicht funktionieren, und Ihnen helfen, von einem Junior-Entwickler zu einem mittleren Entwickler zu werden. Los geht’s! 💪
Werte in JS haben einen inhärenten booleschen Wert, der mit ihnen verbunden ist. Es ist also superwichtig zu wissen, wie diese Werte ausgewertet werden (wahr oder falsch), besonders wenn es um Vergleiche und Bedingungen geht 🤓
Ich versuche immer herauszufinden, welche Werte wahr wären. Tun Sie das nicht. Merke dir stattdessen, welche Werte Falsy sind. Wenn es nicht auf der Liste steht, gilt es als wahr 👍
// JS Essentials: Falsy ValuesfalseundefinednullNaN0 or +0 or -0"" or '' or `` (empty string)// Everything else is truthy
# Werte, die tatsächlich wahr sind
Hier sind einige Beispielwerte, von denen du vielleicht dachtest, dass sie wahr sind (zumindest habe ich das getan), aber es wird tatsächlich true
ausgewertet. Denken Sie daran, dass es wahr ist, wenn es nicht auf der falschen Liste steht!
// All these will return **true**Boolean(); // Empty Boolean({}); // Empty {}Boolean('0'); // String containing zeroBoolean('false'); // String containing the text falseBoolean(function() {}); // Empty functionBoolean(-Infinity); // Infinity or Negative InfinityBoolean(new Date()); // Date object
# Falsy Value in Conditional Statements verwenden
Da jeder Wert in JS als boolesch (wahr oder falsch) ausgewertet wird. Wir können unsere Bedingung in der if
-Anweisung abkürzen.
// ❌if(false === null)if(undefined === null)if(null === null)if(NaN === null)if(0 === null)if("" === null)if(value === null)// ✅ Much betterif(!value)
# Falsy-Wert in ternären Operatoren verwenden
Auch in den ternären Operatoren können Sie damit Ihre Bedingung abkürzen.
// ❌'' === false ? '🙂' : '🙃';// ✅ Much better'' ? '🙂' : '🙃';
# Falsy-Wert in logischen Operatoren verwenden
Hier ist eine interessante Sache. Sie können ||
und &&
verwenden, um einen Wert zurückzugeben. Es ist auf jeden Fall super wichtig zu wissen, welcher Wert falsy und welcher truthy ist.
||
Vergleiche hören auf, sobald ein wahrheitsgemäßer Ausdruck ausgewertet wird
const or = '' || 'hi'; // "hi"const or = || 'hi'; //
&&
Vergleiche hören auf, sobald ein falscher Ausdruck ausgewertet wird
const and = '' && 'hi'; // ""const and = && 'hi'; // "hi"
# Community Examples
# Using Falsy Values for Unit Testing
Jason A: Manchmal, wenn ich Unit-Tests durchführe, verwende ich ein Array von Falsy-Werten und ziehe eine Schleife über sie, um zu sehen, ob mein Fallback korrekt funktioniert, etwa so:
.forEach(el => expect(funcImTesting(el).to.be('my fallback')),);
Danke: @jsawbrey