Ankündigung

Einklappen
Keine Ankündigung bisher.

Frage zu getDay()

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Marck
    hat ein Thema erstellt Frage zu getDay().

    Frage zu getDay()

    Ist wahrscheinlich eine triviale Frage, aber ich komme gerade nicht drauf. new Date().getDay() liefert für Sonntag eine 0 vom Typ number. Warum wird 0 im Kontext der Funktion als Null ausgewertet?
    Code:
    <script>
      angular.module("dayApp", [])
      .controller("dayCtrl", function ($scope) {
        $scope.weekday = new Date().getDay();
      });
    </script>
    
    <p ng-controller="dayCtrl">
      weekday = {{weekday || "?"}}
    </p>

  • tr0y
    antwortet
    Ja du täuscht dich. Das kannst du im Grunde sogar selbst in der js-console deines browsers ausprobieren.

    Code:
    {{ weekday == 0 ? weekday : 'falsy' }}
    ist wohl was du willst.

    Einen Kommentar schreiben:


  • Marck
    antwortet
    Danke dir, aber das parseInt löst es nicht. Problem macht die Variablenzuweisung: weekday = weekday || "?".

    Die Variable weekday ist hier mit (num)0 deklariert und es wird trotzdem der Wert hinter dem Operator ausgegeben. Wenn ich statt dessen schreibe:
    Code:
    angular.module("dayApp", [])
    .controller("dayCtrl", function ($scope) {
      $scope.weekday = angular.isNumber(new Date().getDay());
    });
    
    <div ng-app="dayApp">
      <p ng-controller="dayCtrl">
        weekday = {{weekday || "falsy"}}
      </p>
    </div>
    erhalte ich true zurück.

    Ich weiß, dass 0 in JS als false ausgewertet wird, aber der OR Operator in einer Variablenzuweisung prüft doch nur auf null oder undefinded, oder täusche ich mich da?

    Einen Kommentar schreiben:


  • tr0y
    antwortet
    Zitat von Marck Beitrag anzeigen
    Ist wahrscheinlich eine triviale Frage, aber ich komme gerade nicht drauf. new Date().getDay() liefert für Sonntag eine 0 vom Typ number. Warum wird 0 im Kontext der Funktion als Null ausgewertet?
    Code:
    <script>
      angular.module("dayApp", [])
      .controller("dayCtrl", function ($scope) {
        $scope.weekday = new Date().getDay();
      });
    </script>
    
    <p ng-controller="dayCtrl">
      weekday = {{weekday || "?"}}
    </p>
    Code:
    <script>
      angular.module("dayApp", [])
      .controller("dayCtrl", function ($scope) {
        $scope.weekday = parseInt(new Date().getDay());
      });
    </script>
    
    <p ng-controller="dayCtrl">
      weekday = {{weekday || "?"}}
    </p>

    Einen Kommentar schreiben:

Lädt...
X