この本を使ってJavaScriptを再度勉強中。
誤記っぽいのを見つけたのでここに書いてみる。
2.3.12 Arrayクラス における リスト2.86 unshiftとshiftメソッド
これはキューの実現のためにあると解説され以下のようなサンプルコードが書かれている。
(少しはしょって書いてます)
var q=[];
q.unshift("a");
q.unshift("b");
q.shift(); // => "a"
q; // => ["b"]
このq.shift()のところは実際には"b"が返ってきます。ので最後の行も配列に残っているのは"a"です。
時間が無いので軽く調べたところunshift()はC++のSTLで言えばpush_front()的なもの、shift()はpop_front()的なもののようです。確かに3行目の時点で配列は["b","a"]となっています。
というわけでここは誤記なのではないかと思いました。
時間が無いのでここまでで投稿。
(2013/1/12追記)
著者の方がコメント欄に記入して下さいましたが、やはりキューを実現するにはpopまたはpushとの組み合わせでやるようです。
pushでやるならこんな感じでしょう。
var q=[];
q.push("a"); // q => ["a"]
q.push("b"); // q => ["a", "b"]
q.shift(); // => "a"
q; // => ["b"]