- langage dynamique
- peut supporter des structures orientées objets, mais sans l'usage de classes (!?)
- les fonctions sont un type à part entière
Il faut distinguer les types primitifs, des complexes, car ils ne réagissent pas de la même façon.
true
false
… voilà !
- Le type number ne distingue pas les entiers, des nombres à virgules.
- exprimé par une valeur à double-precision 64-bit format IEEE 754
console.log( 0.1 + 0.2 ); // 0.30000000000000004
- Tous les opérateurs standards sont disponibles, plus le `%
- La conversion d'une chaine :
parseInt( "3zer" )
ouparseFloat( "3.23ert" )
- Pour certaines opérations, nous obtiendrons la valeur
NaN
Cette valeur est de type number, mais attetion :
console.log( NaN == NaN ); // false
console.log( isNaN( NaN ) );// true
Les string (j'en vois certains qui ricanent…) sont des séquences de caractères Unicode, représenté sur 16 bits.
console.log( "ta mère en string".length );
Valeur par défaut des variables
var pouet;
console.log( pouet );// undefined
- Collections de clé -> valeur.
- La clé est une
string
, la valeur n'importe qu'elle valeur - Très utile pour sauvegarder des valeurs structururées
Initialisation :
// Notation objet
var prof = new Object();
// Notation littérale
var prof = {};
// Ecriture
prof.nom = "Eric";
// Lecture
console.log( prof.nom );// "Eric"
// ou
// Ecriture
prof[ 'nom' ] = "Eric";
// Lecture
console.log( prof.nom );// "Eric"
- Les
array
sont une forme hybride desobject
- Leurs clés sont des index numériques
- Ils possèdent des méthodes propres et d'une propriété
length
// Notation objet
var cours = new Array();
// Notation littérale
var cours = [];
// Ecriture
cours[ 0 ] = "Passeport pour le Javascriptan";
// ou
cours.push( "node.js" );
// Lecture
console.log( cours[ 1 ] );
Attention : les array
peuvent avoir des "trous"
cours[ 999 ] = "0100101";
console.log( cours.length );
Les fonctions font parties des complexes en javascript
// Déclaration
function hurle()
{
return "HAAAAAAAAAA";
}
// Invocation
hurle();
Les fonctions prennent des arguments, tous optionnels
// Déclaration
function add( a, b )
{
return a + b;
}
// Invocation
add( 1, 2 );// 3
add( 1 );// 0
add()// 0
add( 1, 2, 3, 4 );// 3
Tous les arguments sont récupérables dynamiquement
// Déclaration
function add( a, b )
{
var o = 0;
for( var i=0, l = arguments.length; i<l ; i++ )
{
o += arguments[ i ];
}
return 0;
}
// Invocation
add( 1, 2, 3, 4 );// 10