ES6:

myFunction.name

Explanation on MDN. As of 2015 works in nodejs and all major browsers except IE.

ES5:

If you have a reference to the function, you can do:

function functionName( func )
{
    // Match:
    // - ^          the beginning of the string
    // - function   the word 'function'
    // - \\s+        at least some white space
    // - ([\\w\\$]+)  capture one or more valid JavaScript identifier characters
    // - \\(         followed by an opening brace
    //
    var result = /^function\\s+([\\w\\$]+)\\(/.exec( func.toString() )
    
    return result ? result[1] : ''
}