おそらく、フロントエンドを使い始めたばかりの多くの学生は、次のように考えるでしょう。2021年のフロントエンドの未来はありますか?
WeChatアプレットの人気とアプリのダウンロードにより、Webページ用に残されたスペースはますます小さくなりますか?あなたが大企業であるかどうかは関係ありませんが、中小企業の場合、Webページの作成にエネルギーを費やすのではなく、公式アカウント用の小さなプログラムを開く方がよいでしょう。では、フロントエンドを学ぶための未来はありますか?
実際、フロントエンドは単なるWeb開発以上のものです。WeChatアプレットとアプリは、実際にはフロントエンドカテゴリから切り離せません。特に、WeChatミニプログラムはほとんどフロントエンドの独占であり、フロントエンドエンジニアとして「ミニプログラム」の方向にのみ、次のことができます。
- WeChatミニプログラムを深く育成し、企業におけるWeChatミニプログラムビジネスをサポートします
- Alipayアプレット、Baiduアプレット、その他のサービスを含むマルチプラットフォームアプレットの水平方向の拡張
- ミニプログラムに基づいて、ミニプログラムの関連するフレームワークを開発します。たとえば、成熟したtaro、mpvueなど、これらのフレームワークには、コンパイル時と実行時に学習ポイントと最適化ポイントがあります。
- マルチプラットフォームの小規模プログラムについて、クロス小規模プログラム開発技術とクロスターミナル開発技術を研究する
- アプレットの最下層を垂直に育成し、最終技術まで拡大
さらに、フロントエンドの境界は次のように無制限です。
- NodeJSテクノロジーに基づいて、フロントエンドはバックエンドフィールドに入ることができます
- ハイブリッドまたはReactNative、さらにはFlutterテクノロジーに基づいて、フロントエンドはクライアント側の方向に進み、柔軟で効率的な価値を発揮できます
- tensorflowjsでさえ、機械学習のホットスポットをこすることもできます
これらは技術的にすぐに利用できる指示です。要するに、強力な言語の活力とコミュニティに基づいて、フロントエンドの開発は、長い間活発で進取的なものであり続けるでしょう。
以下では、現在のフロントエンドの需要と将来の(お金の)状況を、求人の観点から見ていきます。
- フロントエンドの採用に対する需要は常に強く、資本の寒い冬でも、仕事のギャップは依然として非常に大きいです。
- フロントエンドの給与は上昇しており、少なくともバックエンド/クライアント側の技術職と同じです。
私とヘッドハンターの間のいくつかの交換:
もちろん、ユーザーに最も近い技術的立場として、フロントエンドは「製品の成長」、「製品の運用」、「製品の設計」のリンクにおいて主導的な役割を果たします。このため、フロントエンドの将来も国境を越え、ビジネス開発をリードし、業界の新しいパターンを定義することさえできます。
総括する
フロントエンドに限らず、フロントエンドから開始します。クライアントの実装者に限定せず、製品プログラミングに参加し、フロントエンドを洗練し、ビジネスを理解し、バックエンドを理解します。
私が最近まとめたフロントエンドの学校採用面接に関する実際の質問のコレクションをあなたと共有することを恥ずかしく思います。
Tencent、ByteDance、Baidu、Ali、Didi、Meituan、58、Pinduoduo、360、Sina、Sohu、その他の一流インターネット企業が質問にインタビューしました。みんながフロントエンドの学校募集に参加するのに役立つことを願っています!
HTML
- ブラウザページの3つのレイヤーとは何ですか、それらは何ですか、そしてそれらの機能は何ですか?
- HTML5の長所と短所は?
- Doctypeは何をしますか?厳密モードと無差別モードを区別する方法は?それらはどういう意味ですか?
- HTML5の新機能と要素は何ですか?
- 作成したWebページがテストされているブラウザはどれですか。また、これらのブラウザのコアは何ですか。
- すべてのHTMLファイルの先頭に非常に重要なDoctypeがありますが、これが何のためにあるか知っていますか?
- HTML5についてのあなたの知識について教えてください(それは何ですか、なぜですか)
- WEB標準とW3Cの理解と知識?
- HTMLグローバル属性とは何ですか?
- ハイパーリンクのターゲット属性の値と機能について話しますか?
- iframeの欠点は何ですか?
- ラベルの機能とは何ですか?どのように使用されますか?
- ブラウザの複数のタブ間の通信を実現するにはどうすればよいですか?
- キャンバスについてのあなたの理解について話しますか?
- …
CSS
- CSSボックスモデルについて説明しますか?
- CSSセレクターの種類について説明し、その使用法を説明するための例をいくつか挙げてください。
- CSSの何が特別なのか教えてください(優先順位、特別な値の計算)
- 一般的なブラウザの互換性の問題と解決策?
- ディスプレイの値をリストし、それらが何をするのか説明しますか?
- divを中央に配置する方法、フローティング要素を中央に配置する方法は?
- フロートをクリアする方法をいくつか(少なくとも2つ)挙げてください。
- ブロック、インライン、インリンクブロックの詳細の比較?
- グレースフルデグラデーションとプログレッシブエンハンスメントとは何ですか?
- フローティング要素によって引き起こされる問題とその解決策について話します
- パフォーマンスの最適化方法は何ですか?
- なぜCSSスタイルを初期化するのですか?
- Webページの場所に応じて、どのタイプのCSSスタイルシートに分割できますか?
- emとremの違いを教えてください。
- …
JavaScript
- clientHeight、scrollHeight、offsetHeightなどのjsのさまざまな位置、およびscrollTop、offsetTop、clientTopの違いは?
- jsドラッグアンドドロップ機能の実装
- jsメソッドを非同期にロードする
- jsアンチシェイクとスロットル
- 閉鎖について話す
- スコープチェーンの理解について話します
- JavaScriptプロトタイプ、プロトタイプチェーン?特徴は何ですか?
- イベント委任/イベント委任とは何ですか?
- Javascriptはどのように継承を実装しますか?
- 関数の実行はこれを変更します
- バベル編集の原則
- 機能カリー化
- クラスの作成と継承について話します
- フロントエンドでのイベントフローについて話します
- 最初にイベントバブルを作成してからキャプチャする方法
- 写真の遅延読み込みと事前読み込みについて話します
- jsの新しい演算子は何をしますか
- 関数内のこのポインターの関数へのポインターを変更します(バインド、適用、呼び出しの違い)
- Ajaxはブラウザのキャッシュの問題を解決します
- …
スペースに限りがあるため、面接の質問の一部のみを共有できます。面接の質問と回答の完全版は、[クリックしてください]からダウンロードできます〜無料で共有できます
見る
- VueにおけるKeyValueの役割
- Vueコンポーネントのデータが関数でなければならないのはなぜですか?
- vuexの状態特性は何ですか?
- Vueのレスポンシブシステムを紹介する
- 計算と時計の違い
- Vueのライフサイクルを紹介します
- コンポーネントデータが関数でなければならない理由
- コンポーネントはどのように通信しますか
- Vue.cliでカスタムコンポーネントを使用するにはどうすればよいですか?問題が発生しましたか?
- Vueはオンデマンドの読み込みとwebpack設定をどのように実装しますか
- 各サイクルがどのシナリオに適しているかを簡単に説明してください
- scssとは何ですか?Vue.cliのインストールと使用の手順は何ですか?主な機能は何ですか?
- Vue.jsテンプレートのコンパイルについてのあなたの理解について話してください。
- Vueルーティングジャンプのいくつかの方法
- Vueはオンデマンドの読み込みとwebpack設定をどのように実装しますか?
- Vueのルーティング実装:ハッシュモードと履歴モード
- Vue、Angular、Reactの違いは何ですか?
- Vueルーティング用のフック機能
- Vueの計算されたプロパティは何ですか?
- …
React
- 反応を導入する
- 単一のデータフローに反応する
- Reactライフサイクル機能とReactコンポーネントのライフサイクル
- reactとVueの原理、違い、ハイライト、機能
- ReactJsコンポーネント通信
- Reactの仮想DOMについて学びましたか?それはどのように比較されますか?
- プロジェクトではReactが使用されていますが、なぜreactを選択する必要があり、reactの利点は何ですか?
- 本当のDOMを取得する方法
- 反応を選択する理由
- Reactのライフサイクル機能
- setState後の処理
- 反応するハイエンドコンポーネントを知っていますか?
- React jsx、関数型プログラミング
- 反応コンポーネントは、更新するかどうかを決定するために何を使用しますか?
- React-Routerを設定する方法
- ルーティング用に動的にロードされたモジュール
- Reduxミドルウェアとは何ですか?いくつかのパラメーターを受け入れます
- reduxリクエストミドルウェアが同時実行を処理する方法
ブラウザ
- クロス集計通信
- ブラウザアーキテクチャ
- ブラウザの下のイベントループ
- 入力URLから表示までのプロセス
- 再描画とリフロー
- ストレージ
- Webワーカー
- V8ガベージコレクションメカニズム
- メモリーリーク
- リフローとリペイントの最適化
- 再描画とリフローを減らす方法は?
- URLからページが入力され、ページが読み込まれて表示されますが、その過程で何が起こりましたか?
- localStorageとsessionStorageおよびcookieの違いの要約
- http多重化
- Cookieにはどのような属性を設定できますか?
- フォワードプロキシとリバースプロキシ
- …
サーバーとネットワーク
- HTTPSとHTTPの違い
- HTTPバージョン
- URLを入力してページをレンダリングするとどうなりましたか?
- HTTPキャッシュ
- キャッシュの場所
- 強力なキャッシュ
- ネゴシエーションキャッシュ
- キャッシュされたリソースはそこにあります
- ブラウザのキャッシュに対するユーザーの行動の影響
- キャッシングの利点
- 別の更新要求実行プロセス
- クロスドメインの問題があるのはなぜですか
- クロスドメインを解決する方法
- アクセス制御シナリオ(単純な要求と非単純な要求)
- withCredentials属性
- サーバーでCORSを設定する方法
- URLクラスの一般的なメソッド
アルゴリズムとデータ構造
- 二分木シーケンストラバーサル
- Bツリーの特徴、BツリーとB +ツリーの違い
- 末尾再帰
- 多数の階乗を書く方法は?再帰的方法の何が問題になっていますか?
- 多次元配列を一次元配列に変換する方法
- 急速放電のバブリングの原理について話します
- ヒープソート法の原理は?複雑さ?
- 手書きのいくつかの一般的なソートアルゴリズム
- 配列の重複排除、できるだけ多くのメソッドを記述します
- 大きな配列がある場合、それらはすべて整数であり、最大の上位10個の数値を見つける方法
スペースに限りがあるため、面接の質問の一部のみを共有できます。面接の質問と回答の完全版は、[クリックしてください]からダウンロードできます〜無料で共有できます