回答編集履歴
3
誤字
answer
CHANGED
@@ -11,6 +11,6 @@
|
|
11
11
|
|
12
12
|
`Math.floor(Math.random()*26) + "a".charCodeAt(0)` は 0x61(97) から 0x7A(122) までの値をランダムで生成しているにすぎません。
|
13
13
|
|
14
|
-
例えば、もしランダムな数値が 0x0D(13) なら `a` の文字コード 0x61(97) と足して 0x6E(110)
|
14
|
+
例えば、もしランダムな数値が 0x0D(13) なら `a` の文字コード 0x61(97) と足して 0x6E(110) が求まります。一覧を見ると 0x6E(110) は `n` であると分かります。そして `String.fromCharCode(110)` の戻り値が `n` であると確認できます。
|
15
15
|
|
16
16
|
他のアルファベットにおいても確認方法は同じです。
|
2
文章の修正
answer
CHANGED
@@ -11,4 +11,6 @@
|
|
11
11
|
|
12
12
|
`Math.floor(Math.random()*26) + "a".charCodeAt(0)` は 0x61(97) から 0x7A(122) までの値をランダムで生成しているにすぎません。
|
13
13
|
|
14
|
-
例えば、もしランダムな数値が 0x0D(13)
|
14
|
+
例えば、もしランダムな数値が 0x0D(13) なら `a` の文字コード 0x61(97) と足して 0x6E(110) にが求まります。一覧を見ると 0x6E(110) は `n` であると分かります。そして `String.fromCharCode(110)` の戻り値が `n` であると確認できます。
|
15
|
+
|
16
|
+
他のアルファベットにおいても確認方法は同じです。
|
1
文章の修正
answer
CHANGED
@@ -1,12 +1,14 @@
|
|
1
1
|
> どうして、0~25までのランダムな数値に文字列"a"の文字コードを加算した値を引数として、
|
2
2
|
fromCharCode()に渡すとランダムなアルファベットが生成されるのでしょうか?
|
3
3
|
|
4
|
-
どの文字がどの文字コードに位置するのかを整理しましょう。 [wikipedia](https://ja.wikipedia.org/wiki/Unicode%E4%B8%80%E8%A6%A7_0000-0FFF) で16進表記の一覧が記載されています。
|
5
|
-
`a` は 0060 の行の 1 の列にあります。つまり16進表記で 0061 = 61 です。10進数で 0x61 は 97 です。
|
6
|
-
|
4
|
+
どの文字がどの文字コードに位置するのかを整理しましょう。
|
7
5
|
|
6
|
+
[wikipedia](https://ja.wikipedia.org/wiki/Unicode%E4%B8%80%E8%A6%A7_0000-0FFF) で16進表記の一覧が記載されています。
|
7
|
+
`a` は 0060 の行の 1 の列にあります。つまり16進表記で 0061 = 61 です。10進数では 97 です。
|
8
|
+
以後、16進数は接頭辞 0x をつけて 0x61 と表記します。
|
9
|
+
|
8
10
|
同じように一覧を見ていくと `b` は 0x62(98) であり、 `c` は 0x63(99) であり、`z` … 0x7A(122) まで連番になっていると分かります。
|
9
11
|
|
10
12
|
`Math.floor(Math.random()*26) + "a".charCodeAt(0)` は 0x61(97) から 0x7A(122) までの値をランダムで生成しているにすぎません。
|
11
13
|
|
12
|
-
例えば、もしランダムな数値が 0x0D(13) だとすれば `a` の文字コード 0x61(97) と足して 0x6E(110) になります。一覧を見ると 0x6E(110) は `n` であることが分かります。
|
14
|
+
例えば、もしランダムな数値が 0x0D(13) だとすれば `a` の文字コード 0x61(97) と足して 0x6E(110) になります。一覧を見ると 0x6E(110) は `n` であることが分かります。そして `String.fromCharCode(110)` の戻り値が `n` であることを確認できます。
|