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

  • 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>


  • #2
    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>
    [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

    Kommentar


    • #3
      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?

      Kommentar


      • #4
        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.
        [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

        Kommentar

        Lädt...
        X