Types primitifs
###############

Nombre (*number*)
*****************

Nombres entiers et nombres décimaux (la notation utilise le point).

.. code-block:: javascript

   10
   3.41

.. note::

   * on peut utiliser les délimitateurs ``()`` : ``3 * ( 2 + 1 )`` pour gérer la précédence des opérateurs
   * De nombreux opérateurs arithmériques sont disponibles : ``+``, ``-``, ``/``, ``*``, ``%``, etc.

chaîne de caractères (*string*)
*******************************

Les chaînes de caractères se délimitent à l'aide du guillement droit ``'`` ou du guillemet droit double ``"`` (on ne mélange pas les deux pour délimiter une même chaîne !).

.. code-block:: javascript

   "oui"
   'oui'
   "oui" 'et' "oui"

..

.. code-block:: javascript

   "non !'

concaténation avec l'opérateur ``+``
====================================

.. code-block:: javascript

   "et" + "donc" // donne "etdonc"
   "bonjour " + "tout le monde" // donne "bonjour tout le monde"
   "largeur du viewport : " + innerWidth + " pixels" // on peut mixer chaînes de caractères et nombres

booléen (*boolean*)
*******************

Les deux booléens vrai et faux se notent ``true`` et ``false``.

.. code-block:: javascript

   true
   false

   // inversion avec l'opérateur (unaire) de négation !
   ! true // donne false
   ! false // donne true

   // avec des opérateur de comparaison
   0 > 1 // donne false
   0 < 1 // donne true


la valeur null
**************

La valeur ``null`` est une valeur qui indique une absence de valeur.

la valeur undefined
*******************

La valeur ``undefined`` est semblable à ``null`` en cela qu'elle indique une absence de valeur.

Mais là où ``null`` signale que la valeur a été définie comme une absence de valeur, ``undefined`` indique que la valeur n'a pas été définie et est donc absente.

Par exemple, un identificateur auquel aucune valeur n'est assignée renverra ``undefined`` et non ``null``.