— javascript, tutorials — 1 min read
前回は多めに課題を出しましたが、いかがでしたか? +JavaScript道場:十二日目 / DOM操作 その❸
10進数で表現された数字を16進数に変換する関数。数値型(Number型)の変数の時に使えるメソッドです。
1var num1 = 165;2console.log(num1.toString(16)) // a53 4var num2 = 235;5console.log(num2.toString(16)) // eb
引数として与えた数以下の最大の整数を返します。(小数を整数に変換する) 詳しくは MDN で Math.floorの項目を見ましょう。
1console.log(Math.floor(1.123413)) // 12console.log(Math.floor(33.123413)) // 33
0 以上 1 未満の疑似乱数を返す。 詳しくは MDN で Math.randomの項目を見ましょう。
1Math.random() // 0~1未満の乱数が返る2256*Math.random() // 0~256未満の乱数が返る
これらを暗記しようと考えないでください。MDNに全て使い方は書いてあります。 ベテランのエンジニアでも調べながら書くのが普通です。
これらを暗記しようと考えないでください。MDNに全て使い方は書いてあります。 ベテランのエンジニアでも調べながら書くのが普通です。
大事なことなので二回言いました。
1// 前回作成したHTMLで実行すること!!2// コンソールで実行してみよう3var canvas = document.getElementById('canvas')4var ctx = canvas.getContext('2d')5 6for(var i=0; i < 50; i++) {7 // 50回繰り返す8 ctx.fillStyle = randomColorCode() // 色を指定する9 ctx.fillRect(10 Math.random()*400,11 Math.random()*400,12 Math.random()*70 + 20, // 最低20以上のサイズにするため + 2013 Math.random()*70 + 20 // 最低20以上のサイズにするため + 2014 )15}16 17// #000000 ~ #ffffff までの色コードを返す関数18function randomColorCode() {19 var randomColor = "#"20 for(var i = 0; i < 6; i++) {21 randomColor += Math.floor(16*Math.random()).toString(16)22 }23 return randomColor24}
注意:ランダムなので、実行するたびに色や大きさは異なります
1// 前回作成したHTMLで実行すること!!2// コンソールで実行してみよう3// 自分なりに書き換えてみよう4var canvas = document.getElementById('canvas')5var ctx = canvas.getContext('2d')6 7// setInterval(callback, intervalTime)8setInterval(() => {9 // 50回繰り返す10 for(var i = 0; i < 50; i++) {11 // 色を指定する12 ctx.fillStyle = randomColorCode()13 // 引数が長い場合、改行してもOK14 ctx.fillRect(15 Math.random()*400,16 Math.random()*400,17 Math.random()*70 + 20, // 最低20以上のサイズにするため + 2018 Math.random()*70 + 20 // 最低20以上のサイズにするため + 2019 )20 }21}, 200)22 23// #000000 ~ #ffffff までの色コードを返す関数24// これ以外にも色々な書き方考えられます25function randomColorCode() {26 var randomColor = "#"27 for(var i = 0; i < 6; i++) {28 randomColor += Math.floor(16*Math.random()).toString(16)29 }30 return randomColor31}
アロー関数は無名関数の一種です。(無名関数の省略記法) callback関数を定義する時によく使われます。
1// 無名関数の書き方 () は引数、 {} に処理2 3// ① (引数, ...) => { 処理 }4() => {}5 6// ② 引数があるとき7(message) => { console.log(message) } // return なし8(num) => { return nun * num } // return ありの場合9 10// ③ 無名関数を変数に格納11var func = (num) => { return nun * num }12func(100)13 14// ④ 即時実行15((num) => { return num * num })(100)
1function sayHello(message) {2 console.log(message)3}4 5setInterval( sayHello , 200, "hello" )
1setInterval( () => { console.log("hello") }, 200 )
もっとCanvasを使いこなしたい方は下記を参照してください
ここまでが前回の内容の確認でした。for / setInterval / 関数 の復習になりましたか?
難しそうに見えるプログラミングも、基本的には「変数に値を保持する」「オブジェクトを作成する」「関数を定義する」「関数を実行する」「配列を操作する」「文字列を結合する」「四則演算」「繰り返し」「条件分岐」「DOMの操作」この基本的な事柄の組み合わせでしかありません。
プログラミングの90%以上はこれです。まずこの基礎を完全に使いこなせるようになってください。 引き続きDOMについて見ていきます。
移動
させてみようじっくり考えて見てください。
DOMを使用すると、JavaScriptは動的にHTMLを作成するために必要な すべての要素を取得 できます。
1<html>2 <body>3 4 <p id="demo"></p>5 <p id="sample"></p>6 7 <script>8 9 // id が demo の要素10 document.getElementById("demo").innerHTML = "Hello World!";11 12 // id が sample の要素13 var dom = document.getElementById("sample")14 15 </script>16 17 </body>18</html>
クリックを検知して何かをしたい時は、onclick属性を使用します。
1<html>2 <body>3 <button onclick="func()">ボタン Click me!</button>4 5 <script>6 function func() {7 // ボタンをクリックすると、ここに書いた処理が実行される8 alert("funcが実行されました")9 }10 </script>11 12 </body>13</html>
次回、イベントについて