In general mathematics there are two ways to do this, treejs might have some functions that make this easier, but it's nice to see the math
(note that I'll be using a right-handed coordinate system here, OpenGL and XNA use this system but DirectX uses a left-handed system, in that case the math is different)
Using the view matrix
Also note that if I say MatrixName.M12 I'll mean the value at the first row in the second column.
Given a view matrix V you can always obtain the right, up and backward vector quite easily:
right = (viewMatrix.M11, viewMatrix.M21, viewMatrix.M31);
up = (viewMatrix.M12, viewMatrix.M22, viewMatrix.M33);
backward = (viewMatrix.M13, viewMatrix.M23, viewMatrix.M33);
This gives:
left = -right;
up = -down;
forward = -backward;
Now if you want to move something forward you have to take all 3 axises in to account:
position.X += forward.X * speed;
position.Y += forward.Y * speed;
position.Z += forward.Z * speed;
Using a forward pointing vector
We can also construct a vector that points forward by substracting the current camera position from the camera look-at, and then use the cross product to find the other axis, however this works well if we don't touch up (say for an FPS camera):
up = (0,1,0);
forward = camera.LookAt - camera.Position;
right = forward CROSS up;
This again gives:
down = -up;
backward = -forward = camera.Position - camera.LookAt;
left = - right;
Again you'll have to take all 3 axises into account when moving something forward (or along any other axis).
Arcball camera
I could also interpret your question as if you want a camera that keeps focused on a single object while you rotate around it. In that case you're looking for an arcball camera. I hate to plug my own stuff but here is an implementation that you can reference when making your own for threejs.