# .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
```