Getting only the current user won't be enough to get user profile properties. You need to use the PeopleManager as well. Your code should look something like this:
var context = SP.ClientContext.get_current()
var web = context.get_web();
var user = web.get_currentUser();
var peopleManager = new SP.UserProfiles.PeopleManager(context);
var personProperties = peopleManager.getPropertiesFor(user.get_loginName());
context.load(personProperties);
context.executeQueryAsync(onRequestSuccess, onRequestFail);
function onRequestSuccess() {
// Get a property directly from the PersonProperties object.
var messageText = " \"DisplayName\" property is "
+ personProperties.get_displayName();
// Get a property from the UserProfileProperties property.
messageText += "<br />\"Department\" property is "
+ personProperties.get_userProfileProperties()['Department'];
$get("results").innerHTML = messageText;
}
function onRequestFail(sender, args) {
$get("results").innerHTML = "Error: " + args.get_message();
}
Since I don't have access to DEV environment now, I can't tell you for sure, but you might need to add domain name in front of user.get_loginName() on the following line of code. As far as I remember it should be DOMAIN\USERNAME:
var personProperties = peopleManager.getPropertiesFor(user.get_loginName());
Hope this helps.