Q:

?キー名=値の部分が難しいです

ajaxの下記の部分がわかりません。
'helloAjax.php?name=' + encodeURIComponent(document.fm.name.value), true);

全体

<input type="text" name="name" size="15" /></label>

req.open('GET', 'helloAjax.php?name=' + encodeURIComponent(document.fm.name.value), true);

質問
?キー名=値&というJSの仕様のようですが、
'helloAjax.php?name=' + encodeURIComponent(document.fm.name.value)

第二引数(文字列)
 ?キー名=値
 name="name"
属性名=属性の値
という対応をしているという事でよいでしょうか？

A:

属性名=属性の値 という対応をしているという事でよいでしょうか？

はい、その通りです。
値のセットを二つ渡したい時は
?name1=value&name2=value2
となります
ただしこれはJSの仕様ではなくURIの仕様です。(RFC URI仕様に基づいたW3C規格)
https://en.wikipedia.org/wiki/Query_string
(日本語版のwikipediaページが見当たりませんでした・・・)
encodeURIComponent()の部分はURI Encodingというものを行っております。
例えば値に"/"が入ってきたときはURLの一部として認識してしまうため"%2f"という文字列に変換されます。

