『初めてのJavaScript(第3版 )』でJavaScriptを学習しています。
初めてのJavaScript : ES2015以降の最新ウェブ開発 作 者: 出版社: オライリー・ジャパン 発売日: 2017年02月15日 |
ただ読むだけだと理解が曖昧なままに通り過ぎてしまいそうだったので、練習問題を勝手に作って自分で解きながら学習しました。せっかくなので公開して共有します。
本書に収録されている例題のほうは初めてのJavaScript 第3版 —— ES2015以降の最新ウェブ開発 — 例題のダウンロードと実行 — マーリンアームズ株式会社からダウンロードすることができます。
2章
練習問題
ユーザーがクリックすると、半径が80で色が青の円の中に”hello world”と黄色の文字が書かれた図形が表示されるようにしてください。
3章
練習問題1
「今日の日付は2018年7月19日です。
20日後の日付は2018年8月8日です。」
のように今日の日付を表示して、次の行に20日後の日付がコンソールに表示されるようにしてください(月をまたいでも正しく表示されるでしょうか)。
練習問題2
ex03-13-2のb4の配列の100番目に硬度が2.5の象牙を付け加えてください。そしてその配列にアクセスして、コンソールに「象牙の硬度は2.5です」表示してください。
4章
練習問題
ex04-01-1を改造して、意気揚々と船に戻ることになるまで繰り返すようにしてください。余裕があれば4.2.9 switch文で紹介されているような縁起担ぎも組み込んでみてください。
5章
練習問題
ex05-13-1を改造して、最初の偶数を発見するまで配列内の数字をチェックするようにしてください。配列として[ 3, 5, 15, 7, 5]を与えると以下のように表示されます。与える配列を適当に変えて正しく動作するか確かめてください。
奇数を発見:3
奇数を発見:5
奇数を発見:15
奇数を発見:7
奇数を発見:5
未チェックの数字の個数:0
6章
練習問題
ex06-08のシリーズを参考にして、生年、職業、居住地をアップデートする関数を作成し、その関数を用いて(callとapplyの両方で)あなた自身についての情報をアップデートしてください。次に、bindで生年を固定してアップデートしてください。
7章
練習問題
最初にあなたの名前、生年、職業、居住地をオブジェクトで作成してください。それからex07-05-2のように二重のスコープを作り、内側のスコープで6章の練習問題で作った関数を使い居住地をアップデートしてください。内側のスコープから外れると値が元に戻っているでしょうか。
8章
練習問題1
ex08-02-9を改造して、文字数の少ない順(文字数が同じ場合はアルファベット順)にソートしてください。
練習問題2
ex08-04-4を改造して、スペードのロイヤルストレートフラッシュ(スペードの10, 11, 12, 13, A)を作ってください。
練習問題3
ex08-05-5をfilterとjoinを使って書き換えてみてください。
9章
練習問題
例えば車の定員を5人にして、ex09-02-8に定員オーバーでエラーになる部分を付け加えてください。新しい人が乗るたびに現在乗っている人数や、あと何人乗れるかが表示されるとなおよいです。
10章
練習問題
本章の例題ファイルを活用して、ユーザー1の和洋は「ユーザー」、ユーザー2の花子は「管理者」、ユーザー3の涼子は「ユーザー、管理者」、ユーザー4の哲人は役割なしになるように設定してください。
11章
練習問題
本章の例題ファイルを組み合わせて、メールアドレスを検証し、エラーが発生してもしなくても「この行はいつも実行される」と表示してください。
12章
練習問題
ex12-02-2を改造して、名前を聞かれた際に空白を入れると好きな色を聞かれる前に終了するようにしてください。
13章
練習問題1
ex13-03-4でインターバルの秒数が異なる2つの関数の中でgetNextRainbowColor関数を呼び出して、色の順番がとばされることを確認してください。ex13-03-5で同じようにしても色の順番がとばされないことを確認してください。
練習問題2
再帰関数を使ってフィボナッチ数列を求めてください。10000を超えたら終了するようにしてください。
14章
練習問題
ロケット発射プログラムの完成版(ex14-03-8)を、プロミスを使わずに実装してみてください。
15章
練習問題
2018年2月21日15:00にロンドンを出発した飛行機が、13時間かかって東京に到着しました。東京の現地時刻では何月何日の何時に到着したかを表示してください(正解は2月22日13;00です)。
16章
練習問題
以下に示す2016年の都道府県別歳入総額のデータを用いて、1〜47の疑似乱数を発生させ、その数字に該当する都道府県と歳入総額を表示してください(1.北海道、2.青森県、…、46.鹿児島県、47.沖縄県)。Numeral.jsを使ってカンマを入れるとより親切です。
const revenues = [{"北海道":2434886692}, {"青森県":694217643}, {"岩手県":1129941686}, {"宮城県":1383490525}, {"秋田県":605089076}, {"山形県":580851300}, {"福島県":2096640231}, {"茨城県":1087054495}, {"栃木県":763338596}, {"群馬県":736096433}, {"埼玉県":1722075796}, {"千葉県":1659525591}, {"東京都":7122485322}, {"神奈川県":2032743502}, {"新潟県":1055947285}, {"富山県":508721490}, {"石川県":567888708}, {"福井県":450596001}, {"山梨県":465327187}, {"長野県":819099327}, {"岐阜県":773302893}, {"静岡県":1152621919}, {"愛知県":2263393575}, {"三重県":700154974}, {"滋賀県":509495460}, {"京都府":899170238}, {"大阪府":2776964207}, {"兵庫県":1962884485}, {"奈良県":493578569}, {"和歌山県":541231559}, {"鳥取県":358191520}, {"島根県":505631628}, {"岡山県":685819845}, {"広島県":923347710}, {"山口県":640430917}, {"徳島県":478647031}, {"香川県":448601297}, {"愛媛県":622066841}, {"高知県":453349565}, {"福岡県":1693270092}, {"佐賀県":435430115}, {"長崎県":695693042}, {"熊本県":1018938275}, {"大分県":572602476}, {"宮崎県":565437227}, {"鹿児島県":789070662}, {"沖縄県":747747470}]
17章
練習問題
ex17-12-1のlist1を改造して、マッチしたURLにそのURLへのリンクを貼るhtmlタグをつけるようにしてください。「oreilly.com」を「<a href=”oreilly.com”>oreilly.com</a>」にするということです。
18章
練習問題
段落が1つ、1行テキストボックスが2つ、buttonが1つある以下のようなhtmlファイルを作ってください。ボタンをクリックすると、1つ目の1行テキストボックスに入力された内容で既存の段落を書き替えて赤い文字で表示し、2つ目の1行テキストボックスに入力された内容を新しい段落でボタンの下に追記するようにしてください。
<html>
<head>
<meta charset="utf-8">
<title>ex18</title>
<link rel="stylesheet" href="ex18.css">
</head>
<body>
<p>(既存の段落)テキストエリアに文字を入力してボタンをクリックすると、ボタンの下に新しい段落が付け加えられ、この段落の内容が書き替えられます。</p>
<form>
<p>ここに書いた内容で上の既存の段落が書き替えられます。</p>
<input type="text" id="text1">
<p>ここに書いた内容がボタンの下に付け加えられます。</p>
<input type="text" id="text2">
<br />
<br />
<button>文字を入力してからこのボタンを押してください</button>
</form>
<script src="ex18.js"></script>
</body>
</html>
ex18.css
.red {
color: red;
}
19章
練習問題
18章の練習問題と同じ内容をjqueryを使って実現してください。
20章
練習問題
ex20-05-1で作成された「hello.txt」を読み込んで、文字列の「Node」を「Node.js」に置換し、「文字列を置換しました。」と書き加えて、「hello2.txt」という名前のファイルに出力してください。
21章
練習問題
ex21-01-3などを参考にして、3辺の長さを渡して三角形のオブジェクトを作り、色のセット、色と外周と面積のゲットをできるようにしてください。なお、三角形の面積は、ヘロンの公式より、3辺の長さをa, b, cとすると、$\frac{\sqrt{(a+b+c)(-a+b+c)(a-b+c)(a+b-c)}}{4}$で求めることができます。
[…] « 『初めてのJavaScript(第3版 )』非公式練習問題 […]