$('#sample').val()
とした場合、
<input id="sample" value="test">
のようなタグがあった場合に、value属性の値「test」が取れる。
一方、タグがない場合には値は取れないと思っていたが、下記のような場合もセレクターは動作する。idがsampleのタグがないからundefinedを返すのは、そういうものですね。
var sample= "#sample";
この場合、
alert($('#sample').val());
はundefinedを返す。