特別演習18

目次

1. 多肢選択問題

    1. 以下の選択肢のうち、()はWebページ内のイベントではありません。

    2. js を使用してブラウザーでドメイン間でデータを取得することに関する次の説明のうち、間違っているものはどれですか?

    3. 次のプログラムの出力は何ですか?

    4. ブラウザの応答ヘッダー フィールドに属さないものは次のうちどれですか:


1. 多肢選択問題

1. 以下の選択肢のうち、()はWebページ内のイベントではありません。

A、クリック時

B、マウスオーバー時

C、送信時

D、ボタンを押す

正解:D あなたの答え:C

解析:

(1) js内のイベント

  • onclick: 要素がクリックされたときに起動します
  • onmouseover: マウスが指定された要素に移動するとトリガーされます
  • onsubmit: フォームが送信されたときにトリガーされます

(2) jsにはonpressbuttonイベントがありません


2. js を使用してブラウザーでドメイン間でデータを取得することに関する次の説明のうち、間違っているものはどれですか?

A. ドメイン名とポートは同じですが、プロトコルが異なり、同じドメインに属しています。

B. js はクロスドメインに jsonp を使用できます

C. document.domain を変更してサブドメインを横断する

D. クロスドメインには window.name を使用します

正解:A

解析:

(1) プロトコル、ドメイン名、ポートがすべて同じであるため、同じドメインとみなされます。

(2) jsonp はコールバック関数とデータの 2 つの部分で構成されます

  • コールバック関数は、レスポンスを受信したときにページ内で呼び出される関数で、通常はリクエスト内でその名前が指定されます。 
  • データはコールバック関数に渡される JSON データです。
  • 利点:応答テキストに直接アクセスし、ブラウザとサーバー間の双方向通信に使用できます。
  • 欠点: JSONP は他のドメインからコード実行をロードします。他のドメインは安全ではない可能性があり、JSONP リクエストが失敗したかどうかを判断するのが困難です。

(3)ドキュメント.ドメイン

  • ページの document.domain を同じ値に設定すると、ページは相互に JavaScript オブジェクトにアクセスできるようになります。
  • 注: URL に含まれていないドメインに値を設定することはできません。ルーズ ドメインをタイト ドメインに設定することはできなくなります。

3. 次のプログラムの出力は何ですか?
function Foo(){
     var i=0;
     return function(){
         document.write(i++);
     }
}
var f1=Foo(),
f2=Foo();
f1();
f1();
f2();

A、010

B、012

C、000

D、011

正解:A あなたの答え:C

解析:

(1) テスト ポイントはクロージャです。これには 2 つの大きな用途があります。

  • 1 つは関数内の変数を読み取ることです。
  • もう 1 つは、これらの変数の値を常にメモリに保持することです。

(2) ここでのローカル変数 i は、f1() と f2() のグローバル変数ですが、f1() の i と f2() の i は独立しており、f1() が実行されるたびに、f1 の i が() の i は 1 ずつ増加し、f2() が実行されるたびに f2() の i は 1 ずつ増加しますが、相互に影響しません。

(3) f1 と f2 は異なるメモリ空間を持っています

(4) その他の参考文献

クロージャ - JavaScript | MDNクロージャは、関数とそのバンドルされた字句環境への参照の組み合わせです。言い換えれば、クロージャを使用すると、開発者は内部関数から外部関数のスコープにアクセスできるようになります。JavaScript では、関数の作成と同時にクロージャが作成されます。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures


4. ブラウザの応答ヘッダー フィールドに属さないものは次のうちどれですか:

A、紹介者

B、接続

C、コンテンツタイプ

D、サーバー

正解:A あなたの答え:C

解析:

(1) リクエスト(クライアント→サーバ[リクエスト])

GETリクエストメソッド
/newcoder/hello.html リクエストされたターゲットリソース
HTTP/1.1 リクエストで使用されるプロトコルバージョン番号
受け入れる: */* クライアントが受信できるリソースの種類
受け入れ言語: en-us クライアントが受け取った言語タイプ
接続: キープアライブ クライアントとサーバー間の接続関係を維持する
ホスト: ローカルホスト:8080 接続先のホストポート番号
リファラー: http://localhost/links.asp サーバーに送信元を通知する
ユーザーエージェント: Mozilla/4.0 クライアントのバージョン番号の名前
Accept-Encoding: gzip、deflate クライアントが受信できる圧縮データの種類
変更日: 2000 年 7 月 11 日火曜日 18:23:51 GMT キャッシュの時間
クッキー クライアントはサーバーの情報を一時的に保存します
日付: 2000 年 7 月 11 日火曜日 18:23:51 GMT クライアントがサーバーをリクエストした時刻

(2) レスポンス(サーバー→クライアント[レスポンス])

HTTP/1.1 応答で使用されるプロトコルバージョン番号
200 ステータスコード
OK 説明
場所: http://www.baidu.com サーバーはクライアントのページパスにアクセスする必要があります
サーバー: Apache Tomcat サーバーのWebサーバー名
コンテンツエンコーディング: gzip サーバーは圧縮エンコーディングの種類を送信できます
コンテンツの長さ: 80 サーバーが送信した圧縮データ長
コンテンツ言語: zh-cn サーバーから送信された言語の種類
コンテンツタイプ: テキスト/html; 文字セット=GB2312 サーバーが送信するタイプと採用されたエンコード方式
最終更新日: 火曜日, 11 Jul 2000 6:23:51 PM リソースがサーバーによって最後に変更された時刻
更新: url=http://www.it315.org サーバーは、クライアントが1 秒後に更新し、指定されたページパスにアクセスすることを要求します。
Content-Disposition: 添付ファイル;ファイル名=aaa.zip サーバーはクライアントに、ファイルダウンロードして開くように要求します。
転送エンコーディング: チャンク化 データをチャンクでクライアントに渡す
Set-Cookie:SS=Q0=5Lb_nQ;path=/search サーバーからクライアントに送信される一時データ
有効期限: -1//3 種 サーバーはクライアントがページ データをキャッシュすることを禁止しています
キャッシュ制御:いいえ-*** サーバーはクライアントがページ データをキャッシュすることを禁止しています
プラグマ: no-*** サーバーはクライアントがページ データをキャッシュすることを禁止しています
接続: close(1.0)/(1.1)キープアライブ クライアントとサーバー間の接続関係を維持する
日付: 2000 年 7 月 11 日火曜日 18:23:51 GMT サーバーがクライアントに応答するまでの時間

おすすめ

転載: blog.csdn.net/qq_51478745/article/details/131522090