コアポイント
- 一般的なJavaScriptインタビューの質問は、通常、範囲、ネイティブメソッド、プロモーション、キーワード、
this
およびcall()
関数の作成などの重要な概念を理解することを中心に展開します。apply()
javascriptでは、関数のコンテキストとそれをどのように呼び出すかを理解することが重要です。 - キーワードは、コンテキストを指します。これは、関数がオブジェクトの一部として呼び出されるか、スタンドアロン関数として呼ばれるかによって異なります。
this
JavaScriptの標高とは、変数と関数が封じ込め範囲の上部に移動されるプロセスを指します。ただし、関数はその初期値を保持しますが、変数はそうではなく、最初は に設定されます。 -
undefined
JavaScript開発者は、IT分野で非常に人気があります。この役割があなたの知識を最もよく反映している場合、あなたはあなたの雇用会社を変えてあなたの給料を増やす多くの機会があります。しかし、会社に雇われる前に、インタビュープロセスに合格するスキルを実証する必要があります。この記事では、フロントエンドの就職インタビューで5つの一般的なテスト候補JavaScriptスキルとそれらの関連ソリューションを紹介します。これは楽しいでしょう!
次のコードを検討してください:
コンソールは何を印刷しますか?
(function() { var a = b = 5; })(); console.log(b);回答
上記のコードが印刷されます5。この問題の秘trickは、即時の実行関数式(IIFE)には2つの割り当てステートメントがあるが、可変
はキーワードで宣言されていることです。これは、a
が関数のローカル変数であることを意味します。代わりに、var
はグローバルスコープに割り当てられます。この問題のもう1つのトリックは、関数内で厳密なパターン(a
)を使用しないことです。 Strictモードが有効になっている場合、コードはエラー「b
」をスローします。厳密なパターンでは、それが予想される動作である場合、グローバルスコープを明示的に参照する必要があることを忘れないでください。したがって、これを書く必要があります:'use strict';
Uncaught ReferenceError: b is not defined
(function() { 'use strict'; var a = window.b = 5; })(); console.log(b);質問2:「ネイティブ」メソッドを作成します
オブジェクトで
関数を定義します。この関数は整数を受け入れ、文字列を繰り返す必要がある回数を指定します。この関数は、指定された回数繰り返される文字列を返します。たとえば、String
repeatify
console.log('hello'.repeatify(3));
hellohellohello
回答
可能な実装は次のとおりです この質問は、JavaScriptの継承と
プロパティに関する開発者の理解をテストします。また、開発者はネイティブデータ型の機能を拡張できることも確認しています(ただし、実行すべきではありません)。ここでのもう1つの重要なポイントは、定義されている可能性のある上書き機能を避ける方法を理解することを証明することです。これは、独自の関数を定義する前に関数が存在しないかどうかをテストすることによって行われます。この手法は、JavaScript関数をシミュレートするように求められる場合に特に役立ちます。
String.prototype.repeatify = String.prototype.repeatify || function(times) { var str = ''; for (var i = 0; i < times; i++) { str += this; } return str; };
質問3:改善
このコードを実行した結果は何ですか?なぜ?
(function() { var a = b = 5; })(); console.log(b);
回答
このコードの結果はおよびundefined
です。その理由は、変数と関数の両方が宣伝されているため(関数の上部に移動)、変数は割り当てられた値を保持していません。したがって、変数を印刷するときは、関数に存在します(宣言されています)が、それでも2
です。言い換えれば、上記のコードは次のコードと同等です。
a
undefined
(function() { 'use strict'; var a = window.b = 5; })(); console.log(b);javascript
でどのように機能しますか
this
次のコードの結果は何ですか?あなたの答えを説明してください。
console.log('hello'.repeatify(3));
コードプリントおよび
。その理由は、javaScriptの関数のコンテキスト(キーワードは何を参照するか)は、機能がどのように定義されているかではなく、関数の呼び出に依存するためです。最初のAurelio De Rosa
呼び出しでは、John Doe
オブジェクトの関数と呼ばれます。したがって、コンテキストは後者を指し、関数はオブジェクトのthis
プロパティを返します。それどころか、console.log()
がgetFullname()
変数に割り当てられている場合、コンテキストはグローバルオブジェクト(obj.prop
)を指します。これは、グローバルオブジェクトのプロパティとして暗黙的に設定されるために発生します。したがって、関数はfullname
という名前の属性の値を返します。これは、この場合、コードスニペットの最初の行のコードによって設定された値です。 getFullname()
test
window
質問5:test
およびwindow
fullname
前の号のバグを修正して、最後の号が印刷されるように
call()
回答apply()
またはconsole.log()
関数を使用して修正できます。あなたがそれらとそれらの違いを理解していない場合は、私はあなたが記事「Aurelio De Rosa
と
を使用しますが、この場合、は同じ結果が生成されます。
結論call()
apply()
この記事では、インタビュー中にJavaScript開発者をテストするために使用される5つの一般的な質問について説明します。実際の質問はインタビューごとに異なる場合がありますが、対象となる概念とトピックはしばしば非常に似ています。私はあなたが楽しんで、あなたの知識をテストすることを願っています。インタビュー中に他の興味深い質問をされている場合は、お気軽に共有してください。これは多くの開発者に役立ちます。 function.call
function.apply
call()
faqs(faq)apply()
String.prototype.repeatify = String.prototype.repeatify || function(times) { var str = ''; for (var i = 0; i < times; i++) { str += this; } return str; };
インタビューをエンコードするJavaScriptでは、どのような一般的な間違いを避けるべきですか?
最も一般的な間違いの1つは、エンコードを開始する前に問題を完全に理解していないことです。時間をかけて問題を理解し、必要に応じて説明をしてください。別の間違いは、エッジケースが考慮されないことです。潜在的なエッジケースとコードがそれらをどのように処理するかを常に考慮してください。また、ハードコーディングされた値を避けてください。ソリューションは、提供された例だけでなく、すべての入力に対して機能するはずです。最後に、思考プロセスを伝えることを忘れないでください。インタビュアーは、最終的な解決策だけでなく、あなたの問題に対するあなたの解決策に興味があります。
インタビューをエンコードするJavaScriptの準備方法は?
まず、JavaScriptの基本的な知識を完全に理解する必要があります。これには、閉鎖、約束、async/await
、ES6機能などの概念の理解が含まれます。 LeetCode、Hackerrank、Codewarsなどのプラットフォームでのコード化の問題を練習します。また、一般的なJavaScriptインタビューの質問を読んで、自分で解決してみてください。最後に、JavaScriptの根本的な作業原則を理解します。これには、イベントループの非ブロッキング機能、コールスタック、JavaScriptの理解が含まれます。
JavaScriptの閉鎖とは何ですか?なぜそれらが重要なのですか?
JavaScriptの閉鎖は、親関数が閉じられていても、親スコープにアクセスできる関数です。データプライバシーを有効にし、機能工場とモジュールのパターンで使用されるため、重要です。閉鎖を理解することは、JavaScriptの基本的な部分であるため、重要です。
JavaScriptの「」の概念を説明できますか? this
JavaScriptの
、this
、またはcall
メソッドを使用するときに指定されたオブジェクトを参照できます。 apply
bind
JavaScriptは、コールバック、約束、
を使用して非同期操作を処理します。コールバックは、他の機能への引数として渡される関数であり、一部の操作が完了した後に呼び出されます。約束は、非同期操作が最終的に完了または故障したことを示すオブジェクトです。は、非同期コードを同期コードのように見せて動作させる可能性のある構文糖です。 async/await
async/await
JavaScriptのプロトタイプは、JavaScriptオブジェクトが互いに機能を継承するメカニズムです。 JavaScriptはしばしばプロトタイプベースの言語と呼ばれ、プロトタイプを理解することはJavaScriptを理解するための鍵です。
javascriptの「」と「」の違いを説明できますか? ==
===
"
」は厳格な平等オペレーターであり、タイプ変換を実行しないため、オペランドをそのまま比較します。 ==
===
イベントループは、コールスタックが空であるかどうかを常にチェックするJavaScriptのメカニズムです。はいの場合、タスクキューから最初のタスクを取得し、コールスタックにプッシュします。 JavaScriptが非ブロッキングになり、非同期操作を処理できます。 JavaScriptの約束とは何ですか?
一般的なJavaScriptデザインパターンは何ですか?
以上が5典型的なJavaScriptインタビューエクササイズの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PythonとJavaScriptの主な違いは、タイプシステムとアプリケーションシナリオです。 1。Pythonは、科学的コンピューティングとデータ分析に適した動的タイプを使用します。 2。JavaScriptは弱いタイプを採用し、フロントエンドとフルスタックの開発で広く使用されています。この2つは、非同期プログラミングとパフォーマンスの最適化に独自の利点があり、選択する際にプロジェクトの要件に従って決定する必要があります。

PythonまたはJavaScriptを選択するかどうかは、プロジェクトの種類によって異なります。1)データサイエンスおよび自動化タスクのPythonを選択します。 2)フロントエンドとフルスタック開発のためにJavaScriptを選択します。 Pythonは、データ処理と自動化における強力なライブラリに好まれていますが、JavaScriptはWebインタラクションとフルスタック開発の利点に不可欠です。

PythonとJavaScriptにはそれぞれ独自の利点があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1. Pythonは、データサイエンスやバックエンド開発に適した簡潔な構文を備えた学習が簡単ですが、実行速度が遅くなっています。 2。JavaScriptはフロントエンド開発のいたるところにあり、強力な非同期プログラミング機能を備えています。 node.jsはフルスタックの開発に適していますが、構文は複雑でエラーが発生しやすい場合があります。

javascriptisnotbuiltoncorc;それは、解釈されていることを解釈しました。

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。

JavaScriptフレームワークのパワーは、開発を簡素化し、ユーザーエクスペリエンスとアプリケーションのパフォーマンスを向上させることにあります。フレームワークを選択するときは、次のことを検討してください。1。プロジェクトのサイズと複雑さ、2。チームエクスペリエンス、3。エコシステムとコミュニティサポート。

はじめに私はあなたがそれを奇妙に思うかもしれないことを知っています、JavaScript、C、およびブラウザは正確に何をしなければなりませんか?彼らは無関係であるように見えますが、実際、彼らは現代のウェブ開発において非常に重要な役割を果たしています。今日は、これら3つの間の密接なつながりについて説明します。この記事を通して、JavaScriptがブラウザでどのように実行されるか、ブラウザエンジンでのCの役割、およびそれらが協力してWebページのレンダリングと相互作用を駆動する方法を学びます。私たちは皆、JavaScriptとブラウザの関係を知っています。 JavaScriptは、フロントエンド開発のコア言語です。ブラウザで直接実行され、Webページが鮮明で興味深いものになります。なぜJavascrを疑問に思ったことがありますか


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

メモ帳++7.3.1
使いやすく無料のコードエディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
