# .cadoles-slide-title[Fonctions (2/5)] **Déclaration et portée des variables** ```js var outer = 'foo'; var myFunc = function() { var inner = 'bar'; console.log(outer, inner); }; console.log(inner) // -> Soulève une erreur, variable non définie myFunc(); // -> 'foo' 'bar'; ``` **La variable spéciale `arguments`** Dans le contexte d'exécution d'un fonction, la variable `arguments` permet de manipuler les arguments, même si ceux ci n'ont pas été déclarés par la fonction. ```js function myFunc() { console.log(arguments.length, arguments[0], arguments[1]); } myFunc('arg1', 'arg2'); // Affiche '2 "arg1" "arg2"' dans la console myFunc(); // Affiche '0 undefined undefined' dans la console ```