Was bedeutet die +d
in
function addMonths(d, n, keepTime) {
if (+d) {
bedeuten?
gut
Was bedeutet die +d
in
function addMonths(d, n, keepTime) {
if (+d) {
bedeuten?
Paul Sonier
Die +
Operator gibt die numerische Darstellung des Objekts zurück. In Ihrem speziellen Fall scheint es also das ob auf ob oder nicht vorherzusagen d
ist eine Zahl ungleich Null.
Dokumente: developer.mozilla.org/en/JavaScript/Reference/Operators/…
– Felix Klinge
13. Juli 2011 um 17:27 Uhr
Arbeitslink: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
– Ilker Katze
4. Januar 2018 um 22:17 Uhr
Wie unterscheidet es sich von .parseInt()
?
– Daniel W.
10. April 2019 um 13:33 Uhr
@DanielW. 1. parseInt
wird eine ganze Zahl zurückgeben, also wenn Sie dies tun parseInt("5.51")
das Ergebnis wäre 5
während +"5.51"
werde dir geben 5.51
. 2. parseInt
Wille analysieren die Zahl aus einer Zeichenfolge und stoppt beim ersten nicht numerischen Zeichen, während das unäre Plus die gesamte Eingabe umwandelt. Damit parseInt("5 bananas") //5
während +"5 bananas" //NaN
– VLAZ
27. August 2019 um 10:11 Uhr
@acarlstein vom MDN-Link in der Antwort: “Obwohl unäre Negation (-) auch Nicht-Zahlen konvertieren kann, Unäres Plus ist die schnellste und bevorzugte Methode, etwas in eine Zahl umzuwandelnweil es keine anderen Operationen mit der Nummer durchführt.” (nur für eine “offizielle” Antwort)
– EIN
4. November 2019 um 0:01 Uhr
Jsowa
Operator +
ist ein unärer Operator, der den Wert in eine Zahl umwandelt. Nachfolgend finden Sie eine Tabelle mit entsprechenden Ergebnissen der Verwendung dieses Operators für verschiedene Werte.
+----------------------------+-----------+
| Value | + (Value) |
+----------------------------+-----------+
| 1 | 1 |
| '-1' | -1 |
| '3.14' | 3.14 |
| '3' | 3 |
| '0xAA' | 170 |
| true | 1 |
| false | 0 |
| null | 0 |
| 'Infinity' | Infinity |
| 'infinity' | NaN |
| '10a' | NaN |
| undefined | NaN |
| ['Apple'] | NaN |
| function(val){ return val }| NaN |
+----------------------------+-----------+
Operator +
gibt einen Wert für Objekte zurück, die Methoden implementiert haben valueOf
.
let something = {
valueOf: function () {
return 25;
}
};
console.log(+something);
Wichtige Sache: 1.
und andere Zeichenfolgen, die mit enden .
wird durch das Entfernen des Trailings behoben.
. Ich bin darauf gestoßen, als ich einen Fehler in einem Echtzeit-Eingabehandler behoben habe, der die Eingabe von Dezimalzahlen ermöglichen sollte, aber aus diesem Grund nicht wie erwartet funktionierte +
Bediener, der den Nachlauf wegschneidet .
.
– JustAMartin
11. November 2020 um 10:28 Uhr
Denken Sie daran, zu verwenden +
Bediener mit Vorsicht in if
Aussagen als NaN
weder gleich “wahr” noch false
: if (+function(){ }) console.log('success')
– Dies wird nicht ausgeführt
– Kutalien
20. Mai 2021 um 11:08 Uhr
Es ist ein unärer “+”-Operator, der einen numerischen Ausdruck ergibt. Es wäre dasselbe wie d*1
Ich glaube.
Bitte fügen Sie keine Antwort hinzu, wenn Sie sich nicht ganz sicher sind, was passiert. Ich war verwirrt von dem, was ich glaubte, bitte ändern Sie es, wenn Sie sich sicher sind.
– Nemesius
18. November 2021 um 4:58 Uhr
@Nemesius, guter Punkt. Der Teil “Ich glaube” in dieser Antwort gilt immer noch, obwohl 10 Jahre vergangen sind, seit ich darauf geantwortet habe. Ich bin mir nicht ganz sicher, ob ich mir alle möglichen Fälle vorstellen kann, in denen die beiden JavaScript-“Hacks” auf die gleiche Weise funktionieren. Was, wenn 'string'*1
gibt etwas anderes zurück als +'string'
? Also, es ist ungefähr das gleiche – glaube ich 🙂
– Naivisten
24. November 2021 um 19:33 Uhr
RubenLaguna
Wie in anderen Antworten erläutert, wandelt es die Variable in eine Zahl um. Besonders nützlich, wenn d
kann entweder eine Zahl oder eine Zeichenfolge sein, die zu einer Zahl ausgewertet wird.
Beispiel (unter Verwendung der addMonths
Funktion in der Frage):
addMonths(34,1,true);
addMonths("34",1,true);
dann ist die +d
wird in allen Fällen zu einer Zahl ausgewertet. Dadurch wird die Notwendigkeit vermieden, den Typ zu überprüfen und abhängig davon, ob unterschiedliche Codepfade genommen werden müssen d
ist eine Zahl, eine Funktion oder ein String, der in eine Zahl umgewandelt werden kann.
mögliches Duplikat von Was macht das Pluszeichen in ‘return +new Date’
– nawfal
10. Januar 2014 um 12:36 Uhr
Gleiches Problem, aber der Titel der anderen Seite beschreibt nicht den allgemeinen Fall wie hier
– Geotheorie
30. August 2015 um 10:12 Uhr
mögliches Duplikat von What does
+…
bedeuten in JavaScript– Bergi
8. August 2017 um 17:02 Uhr