This code will output `function` followed by a `ReferenceError`. The first line creates a named function expression `sayHello` and assigns it to the variable `greeting`. When `greeting()` is called, it executes the function body, which logs the type of `sayHello`. Inside the function, `sayHello` refers to the function itself, so `typeof sayHello` is 'function'. However, the function name in a named function expression is only accessible within the function's own scope, not in the outer scope. Therefore, when trying to access `sayHello` in the global scope with `console.log(typeof sayHello)`, JavaScript throws a ReferenceError because `sayHello` is not defined in that scope. Only `greeting` is accessible in the outer scope, not the internal function name `sayHello`. This demonstrates the scope limitation of named function expressions, which is useful for recursion and debugging but not for external access.