HTML5プロフェッショナル認定試験 レベル2「デバイス・パフォーマンス・セキュリティ」の一問一答
📖 HTML5プロフェッショナル認定試験 レベル2「デバイス・パフォーマンス・セキュリティ」の全75問と解説(一覧)
HTML5プロフェッショナル認定試験 レベル2のデバイス・パフォーマンス・セキュリティに関する一問一答(全75問)の正解と解説の一覧です。上の一問一答で実際に解いてから、ここで復習・確認できます。
-
問1.Geolocation APIで現在位置を一度だけ取得するには navigator.geolocation.getCurrentPosition() を使用する。
正解:○(正しい)
解説:getCurrentPosition()は現在位置を1回だけ取得する。継続的な監視にはwatchPosition()を使う。
-
問2.watchPosition()は位置が変化するたびにコールバックを呼び出し、戻り値としてwatch IDを返す。
正解:○(正しい)
解説:watchPosition()は監視を開始し識別子(watch ID)を返す。これをclearWatch()に渡して監視を停止する。
-
問3.getCurrentPosition()の成功コールバックには Position オブジェクトが渡され、position.coords.latitude で緯度を取得できる。
正解:○(正しい)
解説:成功時はPositionが渡され、coords.latitude(緯度)coords.longitude(経度)coords.accuracy(精度)を参照できる。
-
問4.Geolocationのエラーコールバックでユーザーがアクセスをきょひした場合のコードは PERMISSION_DENIED である。
正解:○(正しい)
解説:エラー時はPositionErrorが渡され、code=1がPERMISSION_DENIED、2がPOSITION_UNAVAILABLE、3がTIMEOUT。
-
問5.getCurrentPosition()の第3引数のオプションで enableHighAccuracy:true を指定すると、より高精度な位置取得を要求できる。
正解:○(正しい)
解説:オプションには enableHighAccuracy、timeout、maximumAge があり、enableHighAccuracy:true で高精度取得を要求する。
-
問6.coords.accuracy は位置情報の精度をメートル単位で表す。
正解:○(正しい)
解説:accuracyは緯度経度の精度を表す値で単位はメートルである。値が小さいほど高精度。
-
問7.DeviceOrientationEvent の alpha はデバイスのZ軸回りの回転(コンパス方位に相当)を0〜360度で表す。
正解:○(正しい)
解説:alphaはZ軸回り(0〜360度)、betaはX軸回り(前後の傾き)、gammaはY軸回り(左右の傾き)を表す。
-
問8.DeviceMotionEvent はデバイスの加速度(acceleration)や回転速度(rotationRate)を取得できる。
正解:○(正しい)
解説:DeviceMotionEventはacceleration、accelerationIncludingGravity、rotationRate、intervalを提供する。
-
問9.タッチ操作の開始を検知するタッチイベントは touchstart である。
正解:○(正しい)
解説:touchstartは指が画面に触れた時、touchmoveは移動中、touchendは離れた時に発火する。
-
問10.TouchEvent の touches プロパティは、現在画面に触れている全てのタッチ点のリストを表す。
正解:○(正しい)
解説:touchesは画面に触れている全タッチ点、targetTouchesは同一要素上のタッチ点、changedTouchesは変化したタッチ点を表す。
-
問11.DeviceMotionEventのaccelerationで得られる加速度の単位は、メートル毎秒毎秒(m/s²)である。
正解:○(正しい)
解説:DeviceMotionEvent の acceleration と accelerationIncludingGravity は、x・y・z 各軸の加速度をメートル毎秒毎秒(m/s²)で表します。accelerationIncludingGravity は重力の影響を含んだ値です。回転の速さを表す rotationRate の単位は度毎秒です。
-
問12.Coordinatesオブジェクトのspeedプロパティは、デバイスの移動速度をメートル毎秒で表し、取得できない場合はnullとなる。
正解:○(正しい)
解説:Geolocation API の Coordinates オブジェクトの speed は、移動速度をメートル毎秒で表します。端末が速度を取得できない場合は null になります。
-
問13.Coordinatesオブジェクトのheadingは、真北を0度として時計回りに測った進行方向を度単位で表す。
正解:○(正しい)
解説:heading は移動の方向を、真北を0度とした時計回りの角度(0〜360度未満)で表します。取得できない場合は null、静止している(speed が0)場合は NaN になります。
-
問14.requestAnimationFrame() はブラウザの再描画タイミングに合わせてコールバックを実行するため、setTimeoutより滑らかなアニメーションに適する。
正解:○(正しい)
解説:requestAnimationFrameは画面のリフレッシュに同期して呼ばれ、効率的で滑らかなアニメーションを実現する。
-
問15.requestAnimationFrame()で予約したコールバックの実行を取り消すには cancelAnimationFrame(id) を使う。
正解:○(正しい)
解説:requestAnimationFrameは要求IDを返し、cancelAnimationFrame(id)でそのコールバックを取り消せる。
-
問16.performance.now() はページ読み込み開始時点を基準とした高精度(小数ミリ秒)な時刻を返す。
正解:○(正しい)
解説:performance.now()はナビゲーション開始からの経過時間を高精度(小数ミリ秒)で返し計測に適する。
-
問17.Navigation Timing API は、DNS解決・接続・応答などページ読み込みの各段階の時刻を提供する。
正解:○(正しい)
解説:performance.timing(後継PerformanceNavigationTiming)はnavigationStart、domLoading、loadEventEnd等を提供する。
-
問18.Navigation Timingでは、DOMContentLoadedイベントの処理を開始した時刻を performance.timing.domContentLoadedEventStart で取得できる。
正解:○(正しい)
解説:PerformanceTiming の domContentLoadedEventStart は、ブラウザが DOMContentLoaded イベントを発生させる直前の時刻を表します。処理の終了時刻は domContentLoadedEventEnd で取得できます。
-
問19.performance.timing の各プロパティは、UNIXエポック(1970年1月1日0時0分0秒 UTC)からの経過ミリ秒で時刻を表す。
正解:○(正しい)
解説:Navigation Timing の PerformanceTiming の各プロパティは、Date.now() と同じくUNIXエポックからの経過ミリ秒で時刻を表します。ページ読み込み開始を基準とする performance.now() とは基準が異なるため、比べるときは注意が必要です。
-
問20.Web Worker を生成するには new Worker('worker.js') のようにスクリプトのURLを指定する。
正解:○(正しい)
解説:new Worker(URL)でワーカーを生成する。指定したスクリプトが別スレッドで実行される。
-
問21.Geolocation APIで位置情報を取得する際、ユーザーの明示的な許可は不要で、スクリプトから無条件に取得できる。
正解:×(誤り)
解説:誤り。正しくは、Geolocation APIは機微情報を扱うためユーザーの明示的な許可(パーミッション)が必須である。
-
問22.watchPosition()で開始した位置監視を停止するには clearPosition() を呼び出す。
正解:×(誤り)
解説:誤り。正しくは、監視停止には clearWatch(id) を使う。clearPositionというメソッドは存在しない。
-
問23.DeviceOrientationEvent の beta はデバイスのY軸回りの回転を表す。
正解:×(誤り)
解説:誤り。正しくは、betaはX軸回りの回転(前後の傾き、-180〜180度)を表す。Y軸回りはgamma。
-
問24.TouchEvent の changedTouches は、現在画面に触れている全てのタッチ点を表す。
正解:×(誤り)
解説:誤り。正しくは、changedTouchesはそのイベントで状態が変化したタッチ点のリストを表す。全タッチ点はtouches。
-
問25.PositionErrorのcodeで、位置の取得が指定した時間内に完了しなかったことを表す値はPOSITION_UNAVAILABLEである。
正解:×(誤り)
解説:時間内に位置を取得できなかった場合の code は TIMEOUT(3)です。POSITION_UNAVAILABLE(2)は位置情報そのものを取得できなかった場合、PERMISSION_DENIED(1)は利用者が許可しなかった場合を表します。
-
問26.performance.now() が返す値は、Date.now() と同じくUNIXエポックからの経過ミリ秒である。
正解:×(誤り)
解説:誤り。正しくは、performance.now()はナビゲーション開始を基準とした相対時間で、単調増加で巻き戻らない高精度値である。
-
問27.Web Worker は別スレッドで動作し、DOMに直接アクセスすることができる。
正解:×(誤り)
解説:誤り。正しくは、Web Workerは別スレッド動作のためDOM(window/document)に直接アクセスできない。重い処理の分離が目的。
-
問28.Web Worker からメインスレッドへ送られるデータは参照渡しであり、同じオブジェクトを共有する。
正解:×(誤り)
解説:誤り。正しくは、postMessageで渡すデータは構造化複製でコピーされる(Transferable除く)。参照共有しない。
-
問29.Web Workerのエラーで渡されるErrorEventのfilenameプロパティは、エラーを受け取ったメインスレッド側のページのURLを表す。
正解:×(誤り)
解説:ErrorEvent の filename は、エラーが発生したスクリプトのファイル(URL)を表します。ワーカー内で起きたエラーならワーカーのスクリプトが示されます。エラーの内容は message、行番号は lineno で取得できます。
-
問30.Application Cache(AppCache)は現在も推奨される最新のオフライン技術である。
正解:×(誤り)
解説:誤り。正しくは、Application Cacheは非推奨・廃止されており、後継としてService Worker+Cache APIが推奨される。
-
問31.http://example.com と https://example.com は、ホスト名が同じなので同一オリジンである。
正解:×(誤り)
解説:誤り。正しくは、スキームがhttpとhttpsで異なるため別オリジンである。
-
問32.Cookie の Secure 属性を付けると、HTTP(非暗号化)通信でもCookieが送信される。
正解:×(誤り)
解説:誤り。正しくは、Secure属性を付けるとHTTPS通信時のみCookieが送信され、HTTPでは送られない。
-
問33.Web Worker のスクリプトファイルは、生成元のページと異なるオリジンに置いても同一オリジンポリシーの制約を受けない。
正解:×(誤り)
解説:誤り。正しくは、Web Workerのスクリプトは原則として同一オリジンに置く必要があり、同一オリジンポリシーの制約を受ける。
-
問34.navigator.onLineがtrueであれば、目的のサーバーに確実に接続できることが保証される。
正解:×(誤り)
解説:navigator.onLine が false ならブラウザはオフラインだと判断できますが、true は何らかのネットワークにつながっていることを示すだけです。目的のサーバーに届くかどうかまでは保証されないため、実際の通信の成否も確認する必要があります。
-
問35.ApplicationCacheのswapCache()は、マニフェストの更新確認を開始してキャッシュの再ダウンロードを始めるメソッドである。
正解:×(誤り)
解説:マニフェストの更新確認を開始するのは update() です。swapCache() は、ダウンロード済みの新しいキャッシュが利用可能になったとき(updateready の後)に、そのキャッシュへ切り替えるメソッドです。
-
問36.requestAnimationFrame() のコールバックには、引数として現在時刻(DOMHighResTimeStamp)が渡される。
正解:○(正しい)
解説:requestAnimationFrameのコールバックには高精度な現在時刻が渡され、これを用いて経過時間を計算できる。
-
問37.CORS は、クライアント側のJavaScriptだけで設定でき、サーバ側の対応は一切不要である。
正解:×(誤り)
解説:誤り。正しくは、CORSはサーバがAccess-Control-Allow-Origin等の応答ヘッダを返すことで成立し、サーバ側の対応が必須である。
-
問38.document.visibilityStateは、ページが表示されているときに'visible'、別タブへの切り替えなどで非表示のときに'hidden'を返す。
正解:○(正しい)
解説:Page Visibility API の document.visibilityState は、ページの表示状態を文字列で返します。表示中は 'visible'、非表示のときは 'hidden' です。表示状態が変わると document で visibilitychange イベントが発生します。
-
問39.Access-Control-Allow-Originヘッダーには、許可するオリジンをカンマ区切りで複数並べて指定できる。
正解:×(誤り)
解説:Access-Control-Allow-Origin に指定できるのは、1つのオリジンか、すべてを許可する * のどちらかです。複数のオリジンを許可したい場合は、サーバー側でリクエストの Origin ヘッダーを確認し、許可するオリジンを1つ返すように実装します。
-
問40.Geolocation APIは、主要なブラウザではHTTPで配信されたページからでも利用できる。
正解:×(誤り)
解説:Geolocation API は利用者の位置という重要な情報を扱うため、主要なブラウザでは Secure Contexts(HTTPSで配信されたページなど)でのみ利用できます。HTTPで配信されたページから呼び出すと位置情報を取得できません。
-
問41.DeviceOrientationEventで、デバイスのZ軸回りの回転(コンパス方位に相当)を表すプロパティはどれか。
- ア.alpha
- イ.beta
- ウ.gamma
- エ.theta
正解:ア.alpha
解説:Z軸回りはalpha(0〜360度)。betaはX軸、gammaはY軸。
-
問42.Geolocation APIのCoordinatesオブジェクトで、海抜の高さ(メートル)を表すプロパティはどれか。
- ア.height
- イ.elevation
- ウ.altitude
- エ.level
正解:ウ.altitude
解説:Coordinates オブジェクトの altitude は海抜の高さをメートルで表し、取得できない場合は null になります。高さの精度は altitudeAccuracy で表されます。
-
問43.Page Visibility APIで、ページが最小化や別タブへの切り替えで見えなくなっているときに真偽値 true を返す、documentのプロパティはどれか。
- ア.document.visibilityState
- イ.document.hidden
- ウ.document.isVisible
- エ.document.inactive
正解:イ.document.hidden
解説:document.hidden はページが非表示(背面のタブ・最小化されたウィンドウなど)のとき true、それ以外は false を返す真偽値のプロパティ。document.visibilityState は 'visible' や 'hidden' という文字列を返す。isVisible・inactive というプロパティは無い。
-
問44.Web Workerについて正しい説明はどれか。
- ア.別スレッドで動作しDOMに直接アクセスできない
- イ.UIスレッドと同じスレッドで動作する
- ウ.DOMに直接アクセスできる
- エ.localStorageのみ禁止でDOMは操作できる
正解:ア.別スレッドで動作しDOMに直接アクセスできない
解説:Web Workerは別スレッドで動作しDOMに直接アクセスできない。重い処理の分離が目的。
-
問45.http://example.com:80 に対して別オリジンとなるものはどれか。
- ア.https://example.com
- イ.http://example.com/path
- ウ.http://example.com:80/index.html
- エ.http://example.com
正解:ア.https://example.com
解説:https://example.comはスキームが異なるため別オリジン。http://example.com/pathはパス違いのみで同一。
-
問46.CORSで任意のオリジンからのアクセスを許可するサーバ応答ヘッダはどれか。
- ア.Access-Control-Allow-Origin: *
- イ.Access-Control-Allow-All: true
- ウ.Allow-Cross-Origin: *
- エ.Access-Control-Origin: any
正解:ア.Access-Control-Allow-Origin: *
解説:Access-Control-Allow-Origin: * が任意オリジンを許可する。特定許可はそのオリジンを指定。
-
問47.次のWeb Workerのコードで、ワーカーが受け取ったメッセージへ応答する正しい記述はどれか(ワーカー側スクリプト)。
- ア.self.onmessage = e => self.postMessage(e.data)
- イ.document.onmessage = e => document.postMessage(e.data)
- ウ.window.onmessage = e => window.terminate()
- エ.worker.onmessage = e => worker.send(e.data)
正解:ア.self.onmessage = e => self.postMessage(e.data)
解説:ワーカー側ではself.onmessageで受信し、self.postMessage()で応答する。DOMには触れない。
-
問48.次のうち、Geolocation APIで継続的に位置の変化を監視するメソッドはどれか。
- ア.getCurrentPosition()
- イ.watchPosition()
- ウ.observePosition()
- エ.trackPosition()
正解:イ.watchPosition()
解説:watchPosition()は位置変化を継続監視する。getCurrentPositionは1回のみ。
-
問49.タッチイベントで、そのイベントによって状態が変化したタッチ点だけを取得するプロパティはどれか。
- ア.touches
- イ.changedTouches
- ウ.targetTouches
- エ.activeTouches
正解:イ.changedTouches
解説:changedTouchesはそのイベントで変化したタッチ点。touchesは全点、targetTouchesは同一要素上の点。
-
問50.Navigation Timingで、サーバーからのレスポンスの最初の1バイトを受信した時刻を表すプロパティはどれか。
- ア.requestStart
- イ.responseStart
- ウ.responseEnd
- エ.fetchStart
正解:イ.responseStart
解説:responseStart はレスポンスの最初の1バイトを受信した直後の時刻、responseEnd は最後の1バイトを受信した時刻を表します。requestStart はリクエストを送り始めた時刻、fetchStart はリソースの取得を始めた時刻です。
-
問51.メインスレッドからWeb Workerへデータを送るメソッドはどれか。
- ア.sendMessage()
- イ.postMessage()
- ウ.emit()
- エ.dispatchData()
正解:イ.postMessage()
解説:postMessage()でデータを送り、相手はonmessageで受け取る。データは構造化複製される。
-
問52.Web Workerで発生したエラーの情報を持つErrorEventで、エラーが起きたスクリプトの行番号を表すプロパティはどれか。
- ア.line
- イ.lineNumber
- ウ.row
- エ.lineno
正解:エ.lineno
解説:ErrorEvent の lineno は、エラーが発生したスクリプトの行番号を表します。エラーの内容は message、エラーが起きたスクリプトのファイルは filename で取得できます。
-
問53.ApplicationCacheで、新しいキャッシュのダウンロードが完了し、swapCache()で切り替えられるようになったときに発生するイベントはどれか。
- ア.cached
- イ.noupdate
- ウ.updateready
- エ.obsolete
正解:ウ.updateready
解説:updateready は、更新されたキャッシュのダウンロードが完了して利用可能になったときに発生します。cached は初めてキャッシュを作成し終えたとき、noupdate はマニフェストに変更がなかったとき、obsolete はマニフェストが見つからずキャッシュが削除されたときに発生します。
-
問54.CORSのプリフライトリクエストで、実際のリクエストに使うHTTPメソッドをブラウザがサーバーへ伝えるリクエストヘッダーはどれか。
- ア.Access-Control-Allow-Methods
- イ.Access-Control-Request-Method
- ウ.Origin
- エ.Access-Control-Allow-Origin
正解:イ.Access-Control-Request-Method
解説:プリフライトリクエストでは、ブラウザが Access-Control-Request-Method ヘッダーで本番のリクエストに使うメソッドをサーバーへ伝えます。Access-Control-Allow-Methods は、サーバーが許可するメソッドを返すレスポンスヘッダーです。
-
問55.CORSで、クロスオリジンのリクエストに使ってよいHTTPメソッドをサーバーが示すレスポンスヘッダーはどれか。
- ア.Access-Control-Request-Method
- イ.Access-Control-Allow-Headers
- ウ.Access-Control-Allow-Methods
- エ.Access-Control-Allow-Origin
正解:ウ.Access-Control-Allow-Methods
解説:Access-Control-Allow-Methods は、サーバーがプリフライトリクエストへの応答で、許可するHTTPメソッドを示すレスポンスヘッダーです。Access-Control-Allow-Headers は許可するリクエストヘッダー、Access-Control-Allow-Origin は許可するオリジンを示します。
-
問56.HTTPSページ内でHTTPの非暗号化リソースを読み込む状態を指す用語はどれか。
- ア.Cross Content
- イ.Mixed Content
- ウ.Insecure Origin
- エ.Hybrid Content
正解:イ.Mixed Content
解説:Mixed Contentと呼び、ブラウザがブロックまたは警告する。
-
問57.Geolocationの成功コールバックに渡されるPositionオブジェクトから経度を取得するプロパティはどれか。
- ア.position.longitude
- イ.position.coords.lng
- ウ.position.coords.longitude
- エ.position.geo.longitude
正解:ウ.position.coords.longitude
解説:経度はposition.coords.longitudeで取得する。latitudeは緯度。
-
問58.DeviceOrientationEventで、デバイスのX軸回りの回転(前後の傾き)を表すプロパティはどれか。
- ア.gamma
- イ.alpha
- ウ.beta
- エ.delta
正解:ウ.beta
解説:X軸回りはbeta(-180〜180度)。alphaはZ軸、gammaはY軸。
-
問59.画面に触れていた指が離れたときに発生するタッチイベントはどれか。
- ア.touchleave
- イ.touchup
- ウ.touchcancel
- エ.touchend
正解:エ.touchend
解説:指が画面から離れたときには touchend が発生します。触れ始めは touchstart、触れたまま動かしたときは touchmove です。touchcancel は、着信などでタッチ操作が中断されたときに発生するイベントです。
-
問60.ブラウザがネットワークに接続できない状態になったときに、windowで発生するイベントはどれか。
- ア.disconnect
- イ.offline
- ウ.unload
- エ.close
正解:イ.offline
解説:ネットワークへの接続が失われると window で offline イベントが、接続が回復すると online イベントが発生します。現在の状態は navigator.onLine で確認できます。disconnect というイベントはなく、unload はページを離れるとき、close は WebSocket などの接続が閉じたときのイベントです。
-
問61.Performanceオブジェクトで、ページにどのように遷移してきたか(通常の遷移・再読み込み・履歴の移動)やリダイレクトの回数の情報を持つプロパティはどれか。
- ア.performance.timing
- イ.performance.navigation
- ウ.performance.now
- エ.performance.history
正解:イ.performance.navigation
解説:performance.navigation は PerformanceNavigation オブジェクトで、type で遷移の種類(通常の遷移・再読み込み・戻る/進む)を、redirectCount でリダイレクトの回数を表します。performance.timing は読み込みの各段階の時刻を持つオブジェクトです。
-
問62.HTTPSで配信されたページが、HTTPで配信されるスクリプトを読み込もうとしたときの主要なブラウザの扱いとして正しいのはどれか。
- ア.ブラウザが暗号化して読み込む
- イ.警告なしでそのまま読み込む
- ウ.ブロックして読み込まない
- エ.ページ全体をHTTPで読み込み直す
正解:ウ.ブロックして読み込まない
解説:HTTPSのページにHTTPのリソースが混ざる状態を Mixed Content といいます。スクリプトのようにページ全体を書き換えられるリソースは危険が大きいため、主要なブラウザは既定で読み込みをブロックします。
-
問63.ApplicationCacheのstatusプロパティで、キャッシュが存在し、現在は更新処理が行われていない状態を表す値はどれか。
- ア.UNCACHED
- イ.CHECKING
- ウ.OBSOLETE
- エ.IDLE
正解:エ.IDLE
解説:IDLE は、アプリケーションキャッシュがあり、更新の確認やダウンロードが行われていない状態です。UNCACHED はキャッシュが無い状態、CHECKING はマニフェストの更新を確認中、OBSOLETE はキャッシュが廃止された状態を表します。
-
問64.Page Visibility APIで、ページの表示状態が変わったときにdocumentで発生するイベントはどれか。
- ア.visibilitychange
- イ.focuschange
- ウ.pageshow
- エ.statechange
正解:ア.visibilitychange
解説:ページが別タブへの切り替えなどで表示・非表示になると、document で visibilitychange イベントが発生します。現在の状態は document.hidden や document.visibilityState で確認できます。
-
問65.getCurrentPosition()のオプションで、キャッシュされた位置情報をどれだけ古いものまで受け入れるかをミリ秒で指定するプロパティはどれか。
- ア.timeout
- イ.maximumAge
- ウ.enableHighAccuracy
- エ.cacheTime
正解:イ.maximumAge
解説:maximumAge は、キャッシュ済みの位置情報を何ミリ秒前のものまで使ってよいかを指定します。0にすると常に新しい位置を取得しようとします。timeout は位置の取得を待つ最大時間、enableHighAccuracy は高精度の位置を求めるかどうかの指定です。cacheTime というプロパティはありません。
-
問66.クロスオリジンのリソースアクセスをサーバの許可ヘッダで安全に可能にする仕組みはどれか。
- ア.Mixed Content
- イ.同一オリジンポリシー
- ウ.CORS
- エ.Secure Contexts
正解:ウ.CORS
解説:CORS(Cross-Origin Resource Sharing)は、サーバーが Access-Control-Allow-Origin などのヘッダーで許可を示すことで、クロスオリジンのアクセスを可能にする仕組みです。同一オリジンポリシーはクロスオリジンのアクセスを制限する側の考え方です。
-
問67.ユーザーが位置情報の取得を拒否した場合、PositionErrorのcodeに対応する定数はどれか。
- ア.TIMEOUT
- イ.POSITION_UNAVAILABLE
- ウ.ACCESS_DENIED
- エ.PERMISSION_DENIED
正解:エ.PERMISSION_DENIED
解説:拒否時はPERMISSION_DENIED(code=1)。POSITION_UNAVAILABLEは取得不能、TIMEOUTは時間切れ。
-
問68.ページのナビゲーション開始からの高精度な経過時間(小数ミリ秒)を返すメソッドはどれか。
- ア.Date.now()
- イ.new Date().getTime()
- ウ.performance.timing.now()
- エ.performance.now()
正解:エ.performance.now()
解説:performance.now()が高精度な相対時刻を返す。Date.now()はエポックからの整数ミリ秒。
-
問69.Navigation Timingで、DNSによる名前解決を始めた時刻を表すプロパティはどれか。
- ア.connectStart
- イ.dnsStart
- ウ.domainLookupStart
- エ.fetchStart
正解:ウ.domainLookupStart
解説:domainLookupStart はDNSの名前解決を始めた時刻、domainLookupEnd は終えた時刻を表します。connectStart はサーバーへの接続を始めた時刻です。dnsStart というプロパティはありません。
-
問70.メインスレッドからWeb Workerを即座に終了させるメソッドはどれか。
- ア.worker.stop()
- イ.worker.close()
- ウ.worker.kill()
- エ.worker.terminate()
正解:エ.worker.terminate()
解説:メイン側はworker.terminate()で終了。ワーカー自身はself.close()で終了する。
-
問71.クロスオリジンのXMLHttpRequestでCookieや認証ヘッダーを一緒に送るために、send() の前に true を設定するプロパティはどれか。
- ア.withCredentials
- イ.useCredentials
- ウ.sendCredentials
- エ.allowCredentials
正解:ア.withCredentials
解説:XMLHttpRequestの withCredentials を true にすると、クロスオリジンのリクエストにCookie・認証ヘッダー・TLSクライアント証明書などの資格情報を含める(既定値は false、同一オリジンのリクエストには影響しない)。ほかの3つはXMLHttpRequestのプロパティとして存在しない。
-
問72.HTTPSなど安全な経路で配信されたページの状態を指し、一部の強力なAPIを利用するための条件とされる仕様上の概念はどれか。
- ア.Mixed Content
- イ.Same Origin
- ウ.Cross Origin
- エ.Secure Contexts
正解:エ.Secure Contexts
解説:Secure Contexts(安全なコンテキスト)は、HTTPS で配信されたページや localhost など、通信経路が安全とみなせる状態を指します。Geolocation など強力な機能は、Secure Contexts でのみ利用できるように制限されています。
-
問73.ブラウザがクロスオリジンのリクエストに自動で付け、リクエスト元のオリジンをサーバーへ伝えるリクエストヘッダーはどれか。
- ア.Host
- イ.Origin
- ウ.Access-Control-Allow-Origin
- エ.Access-Control-Request-Headers
正解:イ.Origin
解説:Origin は、ブラウザがオリジン間(クロスオリジン)のリクエストなどに付けるリクエストヘッダーで、リクエストを発生させたページのオリジン(スキーム・ホスト名・ポート番号)をサーバーに伝える。Access-Control-Allow-Origin は、応答を共有してよいオリジンをサーバーが返すレスポンスヘッダーで、リクエスト元を伝えるものではない。Host はリクエストの送信先サーバーのホスト名とポート番号を示す。Access-Control-Request-Headers は、プリフライトリクエストで実際のリクエストに使うHTTPヘッダーをサーバーに知らせるもの。
根拠: MDN Web Docs「Origin ヘッダー」 冒頭の定義・解説(ユーザーエージェントは Origin をオリジン間リクエストなどに追加する) / MDN Web Docs「Host ヘッダー」 冒頭の定義(送信先のサーバーのホスト名とポート番号) / MDN Web Docs「Access-Control-Request-Headers ヘッダー」 冒頭の定義(プリフライトリクエストで使用するヘッダーを知らせる) / MDN Web Docs「Access-Control-Allow-Origin ヘッダー」 冒頭の定義(レスポンスヘッダー)
-
問74.ワーカー内で処理されなかった例外を、メインスレッド側で受け取るWorkerオブジェクトのイベントハンドラはどれか。
- ア.onexception
- イ.onerror
- ウ.onfail
- エ.oncatch
正解:イ.onerror
解説:ワーカー内で処理されなかった例外は、メインスレッド側の Worker オブジェクトの onerror で受け取れます。渡される ErrorEvent から、message・filename・lineno でエラーの内容や発生場所を確認できます。
-
問75.Navigation Timingで、loadイベントの処理が終わった時刻を表すプロパティはどれか。
- ア.loadEventEnd
- イ.loadEventStart
- ウ.domComplete
- エ.responseEnd
正解:ア.loadEventEnd
解説:loadEventEnd は load イベントの処理が完了した時刻、loadEventStart は処理を始めた時刻を表します。navigationStart から loadEventEnd までの差を取ると、ページの読み込みにかかった全体の時間がわかります。