ホームページ >ウェブフロントエンド >フロントエンドQ&A >収集する価値のある厳選された Web フロントエンド面接の質問を共有します (回答付き)

収集する価値のある厳選された Web フロントエンド面接の質問を共有します (回答付き)

青灯夜游
青灯夜游転載
2022-07-07 10:36:032233ブラウズ

この記事では、Web フロントエンドの面接で収集する価値のある厳選された質問をいくつかまとめています (回答付き)。一定の参考値があるので、困っている友達が参考になれば幸いです。

収集する価値のある厳選された Web フロントエンド面接の質問を共有します (回答付き)

js 面接の質問

  • 1.js データ型

    • 基本データ型
      数値、文字列、ブール値、Null、未定義、シンボル、bigInt
    • 参照データ型
      オブジェクト、配列、日付、関数、RegExp
  • #2. js の変数と関数の宣言の昇格

      #js 内の変数と関数の宣言は、
    • # を実行するために最上位に昇格されます。 ## 関数のプロモーションは変数のプロモーションよりも上位です。
    • 関数内で var を使用して同じ名前の外部変数が宣言されている場合、関数は上向き検索を実行しなくなります。
    • 匿名関数はプロモートされません。
  • 3. クロージャ
  • クロージャは、他の関数の内部変数を読み取ることができる関数です
    • 基本的に、クロージャ 内部で関数を返す関数です
    • メリット
    • 関数内で変数を読み込むことができます
      • 変数を常にメモリ上に保持します
      • オブジェクトのプライベート プロパティとプライベート メソッドをカプセル化できます
      欠点
    • より多くのメモリを消費し、不適切に使用するとメモリ オーバーフローが発生する可能性があります
  • 4. == と ===
  • == の違いは、厳密ではない意味での平等です。
    • 等しい値は等しいです。
      === は厳密な意味での等価であり、両側のデータ型と値のサイズを比較します。
    • 等しい場合にのみ、値と参照アドレスは等しい
  • 5.this
  • thisは常に関数の直接の呼び出し元を指します
    • 新しいキーワードがある場合、これは new からのオブジェクトを指します
    • イベントの場合、これはイベントをトリガーしたオブジェクトを指します
    ##6. js 配列とオブジェクトを走査する方法
  • for in

      for
    • forEach
    • for-of
    • ##7. Map と forEach の違い
  • forEach メソッドは、トラバーサルとループという最も基本的なメソッドで、デフォルトで渡されるパラメータは 3 つあります。走査された配列

    の内容、配列インデックス インデックス、および現在走査された配列 Array

      map メソッド。基本的な使用法は forEach と同じですが、新しい配列を返すため異なります。 callback
    • は戻り値を持つ必要がありますが、そうでない場合は未定義を返します

    • 8. アロー関数と通常の関数の違いは何ですか?
  • 関数本体内の this オブジェクトは、それが使用されるオブジェクトではなく、定義されるオブジェクトです。

    コンストラクターとして使用することはできません。つまり、新しいコマンドは使用できません。そうでない場合は、エラーがスローされます。
    • 引数オブジェクトは使用できません。また、オブジェクトは関数本体に存在しません。これを使用したい場合は、代わりに Rest パラメーターを使用できます。
    • yield コマンドは使用できないため、アロー関数をジェネレーター関数として使用できません
    • 9. 同一オリジン ポリシー
  • ##同じオリジンとは、同じドメイン名、プロトコル、およびポート番号を指します

    • 10。クロスドメインの問題を解決する方法
  • jsonp クロスドメイン

    document.domain iframe クロスドメイン
      #nodejs ミドルウェア プロキシ クロスドメイン
    • バックエンドはヘッダー情報に安全なドメイン名を設定します
    • #11. 厳密モードの制限事項
    • ##変数は使用前に宣言する必要があります
  • 関数のパラメータに同じ属性を持たせることはできません。そうでない場合は、エラーが報告されます
  • with ステートメントは使用できません

    #これがグローバル オブジェクトを指すことを禁止します
    • 12、es6 の新規追加
    • 新しいテンプレート文字列
    アロー関数
  • for-of (データの走査に使用) —配列内の値など。)

    ES6 は Promise オブジェクトを仕様に組み込み、ネイティブの Promise オブジェクトを提供します。
    • 変数を宣言するための let および const コマンドを追加しました。
    • #モジュール module という概念の導入もあります
    • 13. 属性とプロパティの違いは何ですか?
    • Attribute は、dom 要素がドキュメント内の html タグとして持つプロパティ
    • property が、dom 要素が js 内のオブジェクトとして持つプロパティです。
  • HTML の標準属性の場合、属性とプロパティは同期され、自動的に更新されます
  • ただし、カスタム属性の場合は同期されません

    • 14. let と const の違いは何ですか?
    • let コマンドには変数プロモーションがありません。let より前に使用すると、エラーが報告されます
    • ある場合let および const コマンドがブロック領域内にある場合、閉じたスコープが形成されます。
  • 繰り返しの宣言は許可されません
  • const は定数を定義し、変更できませんが、オブジェクトを定義する場合、オブジェクト内のデータは変更可能です

    • 15. メモリ リーク
    • 定義: プログラム内で動的に割り当てられたヒープ メモリが変更されていません。何らかの理由で割り当てられている、リリースできない、またはリリースできないことによって引き起こされるさまざまな問題。
    • js でメモリ リークが発生する可能性: 結果: 速度低下、クラッシュ、大きな遅延など。
  • js でメモリ リークが発生する考えられる原因
  • グローバル変数

      dom がクリアされても参照が残っています
    • タイマーはクリアされません
    • サブ要素の存在によるメモリ リーク
      • ##16. スクリプトの導入方法は?
        • html 静的 概要
        • js 動的挿入
        • ## : 非同期読み込み、要素の解析が完了した後に実行されます